转换字符串日期/时间值

时间:2019-03-25 20:55:50

标签: java string date java-time

我现在遇到一些Java方法的问题,而这些方法在讲课中没有对我很好地解释。我需要编写一个程序,以yyyymmddhhss格式接受用户输入的字符串(尤其是日期),然后将其转换为hh:mm Month day, year

E.g. 201901151500 outputs: "03:00 PM January 15, 2019". 

当前,在我的程序中,我已经接受用户的输入并实现了一种方法,如果输入的格式无效,该方法将返回错误消息。

关于从这里去哪里的任何提示?意见非常感谢-谢谢!

2 个答案:

答案 0 :(得分:4)

如果您使用的是Java 8,则可以像这样使用java.time API:

String input = "201901151500";
LocalDateTime dt = LocalDateTime.parse(input, DateTimeFormatter.ofPattern("uuuuMMddHHmm"));
String output = dt.format(DateTimeFormatter.ofPattern("hh:mm a MMMM dd, uuuu")); 
>> output = 03:00 PM janvier 15, 2019

答案 1 :(得分:1)

使用此处定义的DateTimeFormatter:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

请注意解析方法。您可以定义一个格式化程序,该格式化程序接受一个字符串,然后以几乎所有您选择的方式以某种方式返回它。

这是LocalDataTime类: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html

示例代码:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
LocalDateTime local = LocalDateTime.parse("2004 12 25", formatter);