格式化日期字符串以删除JAVA中的时间

时间:2013-09-17 07:09:14

标签: java string date

示例,字符串值为:

15/08/2013 15:30 GMT+10:00 

我想在Java上将字符串格式化为15/08/2013(删除时间部分,仅保留日期)。

我该怎么做这种格式?

6 个答案:

答案 0 :(得分:6)

  

删除时间部分,仅保留日期

String dateString= "15/08/2013 15:30 GMT+10:00";
String result  = dateString.split(" ")[0];

这会给你15/08/2013

我猜不需要格式化。

答案 1 :(得分:4)

2018

由于它现在是2018年,我们有Java 8+的日期/时间API(以及ThreeTen Backport),你可以做类似......

String text = "15/08/2013 15:30 GMT+10:00";
LocalDateTime ldt = LocalDateTime.parse(text, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm z", Locale.ENGLISH));
System.out.println(ldt);

// In case you just want to do some "date" manipulation, without the time component
LocalDate ld = ldt.toLocalDate();
// Will produce "2013-08-15"
//String format = ldt.format(DateTimeFormatter.ISO_LOCAL_DATE);
String format = ldt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(format);

原始答案

一种方法是将String日期解析为Date对象,然后根据您的要求进行格式化

String text = "15/08/2013 15:30 GMT+10:00";
SimpleDateFormat inFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm z");
Date date = inFormat.parse(text);
System.out.println(date);

SimpleDateFormat outFormat = new SimpleDateFormat("dd/MM/yyyy");
String formatted = outFormat.format(date);
System.out.println(formatted);

如果您需要其他东西,可以在Date中保留日期/时间信息,这样做很有好处。)

有关详细信息,请参阅SimpleDateFormat

答案 2 :(得分:1)

如果这只是一个包含15/08/2013 15:30 GMT+10:00的字符串而你只想要日期部分,这是字符串的前10个字符,我只需要前10个字符;无需解析并将其格式化为日期:

String input = "15/08/2013 15:30 GMT+10:00";
String result = input.substring(0, 10);

答案 3 :(得分:0)

查看DateFormat类, http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

您应该能够使用解析器解析日期,然后以其他模式写出所需的格式

即。入境的新SimpleDateFormat(“dd / MM / yyyy hh:mm z”)

新的SimpleDateFormat(“dd / MM / yyyy”),用于更新格式

答案 4 :(得分:0)

答案 5 :(得分:0)

DateFormat formatter = new SimpleDateFormat(format);
Date date = (Date) formatter.parse(dateStr);