`
superlxw1234
  • 浏览: 542444 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:43247
社区版块
存档分类
最新评论

JAVA通用的字符串转日期

    博客分类:
  • java
阅读更多

因为需求,只写了年月日时的自动转换。

 

public static Date convertStringToDate(String time) {
		String separator_yM = "";
		String separator_Md = "";
		String separator_dH = "";
		String yyyy = "";
		String MM = "";
		String dd = "";
		String HH = "";
		Pattern pattern = Pattern
				.compile("(\\d{4})([^\\d]?)(\\d{1,2})([^\\d]?)(\\d{1,2})([^\\d]?)(\\d*)$");
		Matcher matcher = pattern.matcher(time);
		if (matcher.find()) {
			System.out.println(matcher.group(0));
			yyyy = matcher.group(1);
			separator_yM = matcher.group(2);
			MM = matcher.group(3);
			separator_Md = matcher.group(4);
			dd = matcher.group(5);
			separator_dH = matcher.group(6);
			HH = matcher.group(7);
			System.out.println(yyyy + separator_yM + MM + separator_Md + dd + separator_dH + HH);
		}
		
		if(yyyy == null || yyyy.equals("") 
				|| MM == null || MM.equals("")
				|| dd == null || dd.equals("")) {
			return null;
		}
		
		String formateStr = "yyyy" + separator_yM + repeat("M", MM.length()) + separator_Md + repeat("d", dd.length()) + separator_dH + repeat("H", HH.length());
		System.out.println("formateStr->" + formateStr);
		
		SimpleDateFormat formate = new SimpleDateFormat(formateStr);
		formate.setLenient(false);
		Date result = null;
		try {
			result = formate.parse(time);
		} catch (ParseException e) {
		}
		return result;
		
	}
	
	public static String repeat(String s,int counts) {
		int len = s.length();
		StringBuilder builder = new StringBuilder(len * counts);
		for(int i=0; i<counts; i++){ 
		  builder.append(s); 
		}
		return builder.toString();		
	}

 

测试:

 

public static void main(String[] args) {
		String s = "2014 9/23:7";
		SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd-HH");
		Date d = convertStringToDate(s);
		if(d != null) {
			System.out.println(formate.format(d));
		} else {
			System.out.println(d);
		}
				
	}

 

-----输出

2014 9/23:7
2014 9/23:7
formateStr->yyyy M/dd:H
2014-09-23-07

-----

 

String s = "2014-9/23-7";

---输出

2014-09-23-07

 

String s = "2014-9/23-7";

---输出

2014-09-23-07

 

String s = "2014-9/31-7";

---输出

null

 

String s = "2014-9-ss-7";

---输出

null

 

其他自己去试吧。

 

 

0
1
分享到:
评论

相关推荐

    JAVA中通用的日期格式转换

    /** * 作用:将字符串转化为日期类型 * @param operDate :当前要进行操作的日期 * @param type :希望通过操作返回的日期类型 * @return */

    java转换万能工具类附带jar包

    一个json相互转换的万能java类... * 将java对象转换成json字符串,并设定日期格式 * @param javaObj * @param dataFormat * @return */ /** *//** * JSON 时间解析器具 * @param datePattern * @return */

    java string 转date方法如何实现

    在开发应用中经常会使用到java string 转date这种不是很常见的做法,本文将以此问题提供详细解决方案,需要了解的朋友可以参考下

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java基础类库开发包,工作5年精心整理_Java常用工具类源码

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    Java常用工具类大全,工作5年精心整理(最新版)

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    java常用工具大全

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    Java常用工具类大全

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    通用java日志记录开发包,短小而精悍,适合各种大小项目

    #是否在日志记录前加日期时间字符串,取值0或1(立即生效) isAddDateTimeStringToHead=1 #当isAddDateTimeStringToHead为1时有效,表示时间串的格式,必须为java认识的时间格式;特别的,如果为“UNIX_TIMESTAMP”...

    java api最新7.0

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    Java常用工具类大全.7z

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    JavaAPI1.6中文chm文档 part1

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java各种工具类,多年精华

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    java开源包11

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包6

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包4

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    通用Android工具库Common4Android.zip

    字符串处理工具类。 SystemIntentUtil.java 系统Intent工具类,常用的系统Intent跳转函数,如:打电话、发短信等。 示例代码: - NetWork HttpDataRequest ...

Global site tag (gtag.js) - Google Analytics