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

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
分享到:
评论

相关推荐

    json工具类,java日期转换,字符串转换等各种工具类

    在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....

    JAVA中通用的日期格式转换

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

    Java字符串 日期 数字格式化输出.doc

    Java编程语言中,字符串、日期和数字的格式化输出是一个重要的概念,特别是在处理用户界面输出或者数据记录时。虽然在C语言中可以使用`printf`函数进行格式化输出,但Java的标准输出`System.out.println()`并没有...

    Java_格式化字符串 汇总

    Java中的字符串格式化功能是处理和展示数据时不可或缺的一部分,尤其在需要将各种数据类型转换为特定格式的字符串时显得尤为重要。本文将深入探讨Java中`String`类的`format()`方法,及其如何用于创建格式化的字符串...

    java时间格式转换大全

    3. `java.text.SimpleDateFormat`:这个类是日期/时间格式化的关键,它实现了`java.text.Format`接口,用于将日期和时间转换为字符串,或将字符串解析为日期。`SimpleDateFormat`的构造函数接受一个模式字符串,如...

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

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

    java通用API工具合集,最全中文版

    Java通用API工具合集是Java开发者的重要参考资料,它包含了Java平台标准版(Java SE)的各种类库和接口的详尽文档。这个最全中文版使得中国开发者能够更方便地理解和使用Java API,避免了语言障碍,提高了开发效率。...

    java日期对象练习

    - 将字符串转换回日期:`Date parsedDate = sdf.parse(dateStr);`,注意这可能会抛出`ParseException`。 7. **时区处理** - `TimeZone`类用来处理不同时区。`TimeZone.getDefault()`获取默认时区,`TimeZone....

    nariit-sgcc-common-1.0_JAVA通用工具类_sgcc_

    《JAVA通用工具类——nariit-sgcc-common-1.0深入解析》 在软件开发过程中,为了提高代码的复用性和效率,开发者通常会创建一些工具类库,以供项目中频繁使用的功能调用。"nariit-sgcc-common-1.0"就是这样一个针对...

    最全的java时间(日期)工具类

    `DateUtil.java`文件很可能是实现了一些通用的日期时间操作,如日期的转换、格式化、比较等。在实际项目中,这样的工具类可以帮助简化代码,提高可读性和可维护性。通常,`DateUtil`类会包含以下方法: - 将`Date`...

    Java 日期格式加上指定月数(一个期限)得到一个新日期的实现代码

    首先,我们需要将日期字符串转换为 Date 对象,这可以使用 java.text.SimpleDateFormat 的 parse 方法来实现。例如: ```java SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format....

    java处理JSON格式数据的通用类

    `JsonUtil`类可能还包括其他处理JSON的方法,如将Java对象序列化为JSON字符串、处理嵌套的JSON结构、处理日期等复杂类型等。通常,这类工具类会利用第三方库,如`net.sf.json`或`com.google.gson`,它们提供了丰富的...

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

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

    日期格式转换的Java实现

    `SimpleDateFormat`是`DateFormat`的一个子类,它可以让我们根据自定义的模式来格式化(日期 -&gt; 文本)、解析(文本 -&gt; 日期)日期/时间字符串。通过提供模式字符串,我们可以指定期望的日期格式。 ##### 2.1 模式...

    java字符格式化

    Java 字符格式化是编程中常见的一种操作,用于将各种数据类型转换成字符串,并按照特定的格式进行展示。在 Java 中,`String` 类提供了一个名为 `format()` 的方法,这个方法可以用来创建格式化的字符串,类似于 C ...

    JAVA时间通用集合类

    1. **日期和时间的转换**:将字符串转换为日期或时间对象,反之亦然。 2. **日期运算**:增加或减少日期的年、月、日,或者时间的小时、分钟、秒。 3. **时间间隔处理**:计算两个日期或时间之间的差值,返回...

    java操作日期时间工具类

    1. **日期时间格式化与解析**:通过`SimpleDateFormat`类,可以方便地将日期时间转换为字符串,或从字符串转换为日期时间。例如: ```java public static String format(Date date, String pattern) { ...

    项目通用java类

    3. 工具类:包含各种通用的功能,如日期时间处理、字符串操作、文件I/O等。 4. 异常处理和日志记录类:提供统一的异常处理机制和日志记录,便于调试和问题定位。 5. 可能还有配置类和接口定义,用于项目的模块化和...

    时间与字符串工具类

    本话题聚焦于两个特定的工具类:`StringUtil`和`DatetimeUtil`,它们分别处理字符串操作和日期时间操作。 `StringUtil`类是一个典型的字符串处理工具类,它提供了以下两个关键功能: 1. **去除右侧空格**: 这个...

Global site tag (gtag.js) - Google Analytics