gpt4 book ai didi

java - Joda 日期格式化程序

转载 作者:行者123 更新时间:2023-12-02 01:00:01 31 4
gpt4 key购买 nike

有谁知道如何解析日期,例如:Mon Aug 04 16:07:00 CEST 2014使用 Joda 的 DateTime 格式化程序转换为 dd/MM/YYYY HH:MM:SS。我已经尝试过了:

final DateTimeFormatter sdf = DateTimeFormat.forPattern(DATE_FORMAT);
DateTime lastDateOnline = sdf.parseDateTime(lastCommunicationToDisplay.getDateOnLine().toString());
return lastDateOnline.toString();

DATE_FORMAT = dd/MM/YYYY HH:MM:SSlastCommunicationToDisplay.getDateOnLine().toString() = 2014 年 CEST 2014 年 8 月 4 日星期一 16:07:00

我找不到有关该库的明确解释。我被要求使用它而不是 SimpleDateFormat 因为它不是线程安全的。

最佳答案

解决方案

如果您所要做的就是将 LocalDate 转换为符合模式的字符串:“dd/MM/YYYY HH:mm:ss”,那么您可以使用重载的 toString() 方法以更简单的方式完成此操作在本地日期:

a) 直接接收格式字符串的:

LocalDate date = lastCommunicationToDisplay.getDateOnLine();
System.out.println(date.toString("dd/MM/YYYY HH:mm:ss"));

b) 接收用上述字符串初始化的 DateTimeFormatter 的:

DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM/YYYY HH:mm:ss");
LocalDate date = lastCommunicationToDisplay.getDateOnLine();
System.out.println(date.toString(dtf));

您的代码出了什么问题

您使用的格式字符串与您作为输入发送的日期字符串不兼容。您使用 DateTimeFormatter 的方式用于将该格式的字符串解析为 LocalDates,而不是相反。

如果您的输入字符串如下所示,则该格式是合适的: 2014年4月8日22:44:33

由于您的看起来不同,因此以下格式值是兼容的(前提是您的时区始终为 CEST):

DATE_FORMAT = "E MMM dd HH:mm:ss 'CEST' YYYY";

所以整个代码应该是这样的:

String dateString = "Mon Aug 04 16:07:00 CEST 2014";
DateTimeFormatter dtf = DateTimeFormat.forPattern("E MMM dd HH:mm:ss 'CEST' YYYY");
LocalDate date = dtf.parseLocalDate(dateString);
System.out.println(date.toString("MM/dd/yyyy")); // or use toString(DateTimeFormatter) and use your pattern with a small adjusment here (dd/MM/YYYY HH:mm:ss)

但是,我推荐前两条建议之一。

关于java - Joda 日期格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122796/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com