如何更改Calendar对象的格式

时间:2018-05-11 07:03:58

标签: java calendar

我有一个字符串,例如5月10日星期五15:48:23 IST 2018.如何以Calendar对象的形式转换此字符串,格式为2018-05-10 15:48:23.84。

1 个答案:

答案 0 :(得分:1)

首先查看DateTimeFormatterParsing and Formatting,了解有关如何在Java 8 +中解析和格式化日期/时间值的更多详细信息

根据您的示例,类似......

String inValue = "Thu May 10 15:48:23 IST 2018";
DateTimeFormatter inFormatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse(inValue, inFormatter);
DateTimeFormatter outFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS", Locale.ENGLISH);
String outValue = outFormatter.format(ldt);
System.out.println(outValue);

将打印2018-05-10 15:48:23.00

  

感谢您的回复。我实际上希望最终结果为具有所需格式的日历对象,而不是字符串。

  1. Calendar实际上已被弃用,您不应该再使用它了。即使您没有使用Java 8+,也应该使用ThreeTen Backport API
  2. Calendar(和Date以及所有其他“日期/时间”类)只是表示某个时间点的值的容器,它们没有任何类型的“格式化”功能拥有。这就是API具有格式化类的原因。保持日期/时间值表示为适当的类,直到您需要显示它们为止,此时,您应该将值格式化为String