示例,字符串值为:
15/08/2013 15:30 GMT+10:00
我想在Java上将字符串格式化为15/08/2013
(删除时间部分,仅保留日期)。
我该怎么做这种格式?
答案 0 :(得分:6)
删除时间部分,仅保留日期
String dateString= "15/08/2013 15:30 GMT+10:00";
String result = dateString.split(" ")[0];
这会给你15/08/2013
我猜不需要格式化。
答案 1 :(得分:4)
由于它现在是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)
尝试使用SimpleDateFormat类:http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
答案 5 :(得分:0)
DateFormat formatter = new SimpleDateFormat(format);
Date date = (Date) formatter.parse(dateStr);