Java 如何将字符串日期转换为ISO日期格式日期
我有一个字符串日期“2020年1月4日晚上9:00”。我想把它转换成ISO日期格式。正在寻找将其转换为ISO日期格式的优化方法,请尝试以下代码:Java 如何将字符串日期转换为ISO日期格式日期,java,Java,我有一个字符串日期“2020年1月4日晚上9:00”。我想把它转换成ISO日期格式。正在寻找将其转换为ISO日期格式的优化方法,请尝试以下代码: public static void main(String[] args) { String dateString = "04/01/2020 at 9:00PM"; DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy 'at' hh:mma");
public static void main(String[] args) {
String dateString = "04/01/2020 at 9:00PM";
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy 'at' hh:mma");
try {
Date date = dateFormat.parse(dateString);
System.out.println(date);
} catch(ParseException exception) {
System.out.println(exception.getMessage());
}
}
查看此帖子以了解更多信息:
更新
根据Mark Rotterveel的建议,DateTimeFormatter是一个更好的API,用于在java 8中格式化日期,因此这应该是首选:
public static void main(String[] args) {
String dateString = "12/12/2020 at 09:00PM";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("d/M/yyyy 'at' hh:mma", Locale.ENGLISH);
try {
LocalDateTime dateTime = LocalDateTime.parse(dateString, dateTimeFormatter);
System.out.println(dateTime);
} catch (DateTimeException exception) {
System.out.println(exception.getMessage());
}
}
请尝试以下代码:
public static void main(String[] args) {
String dateString = "04/01/2020 at 9:00PM";
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy 'at' hh:mma");
try {
Date date = dateFormat.parse(dateString);
System.out.println(date);
} catch(ParseException exception) {
System.out.println(exception.getMessage());
}
}
查看此帖子以了解更多信息:
更新
根据Mark Rotterveel的建议,DateTimeFormatter是一个更好的API,用于在java 8中格式化日期,因此这应该是首选:
public static void main(String[] args) {
String dateString = "12/12/2020 at 09:00PM";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("d/M/yyyy 'at' hh:mma", Locale.ENGLISH);
try {
LocalDateTime dateTime = LocalDateTime.parse(dateString, dateTimeFormatter);
System.out.println(dateTime);
} catch (DateTimeException exception) {
System.out.println(exception.getMessage());
}
}
我建议切换到
java.time
格式化程序,而不是使用我已经尝试过的SimpleDateFormat
之类的旧类,但我无法真正了解DateTimeFormatter。也许你可以发布一个使用DateTimeFormatter@MarkRotteveel我已经更新了我的答案。要求使用ThanksISO日期格式。虽然第一个示例没有提供这一点,但是使用的示例确实打印ISO 8601格式,因为java.time类本机就这样做了。输出为2020-12-12T21:00
。谢谢。我建议切换到java.time
格式化程序,而不是使用我已经尝试过的SimpleDateFormat
之类的旧类,但我无法真正了解DateTimeFormatter。也许你可以发布一个使用DateTimeFormatter@MarkRotteveel我已经更新了我的答案。要求使用ThanksISO日期格式。虽然第一个示例没有提供这一点,但是使用的示例确实打印ISO 8601格式,因为java.time类本机就这样做了。输出为2020-12-12T21:00
。谢谢。