gpt4 book ai didi

java - JodaTime toDate 给出了错误的日期

转载 作者:行者123 更新时间:2023-11-29 09:13:11 27 4
gpt4 key购买 nike

今天我在代码中发现了一个非常神秘的错误。我使用 JodaTime 库有一段时间了,从那以后它一直保持一致。

DateTime dateTime = DateHelper.formatDateTime("25/06/2012");
TestHelper.spot(dateTime);
TestHelper.spot(dateTime.toDate());

结果-

2012-06-25T00:00:00.000+05:30
Mon Jun 25 00:00:00 IST 2012

但在不同的 java 应用程序中 -

2012-06-25T00:00:00.000+05:30
Sun Jun 24 18:30:00 GMT 2012

DateHelper.formatDateTime() 方法

public static DateTime formatDateTime(String text) {
DateTimeFormatter format = DateTimeFormat.forPattern("dd/MM/yyyy");
return format.parseDateTime(text);
}

我怀疑的唯一问题是格式(GMT 和 IST)。我能做些什么来保持一致性。

最佳答案

这两个值表示相同的时间点。它们只是因为不同的时区而呈现不同。这纯粹是渲染的问题;再一次,它们是同一时间

要可靠地将 DateTime 转换为一致的“人类可读”字符串,您需要在呈现时指定时区、格式和语言环境:

String rendered = dateTime.withZone(DateTimeZone.UTC)
.toString("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);

当然,如果您想让计算机解析结果,您应该使用ISODateTimeFormat;在紧要关头,这既一致又有点人类可读性。 (它也很容易排序。)仅当可读性比其他任何事情都重要时才使用其他格式。

关于java - JodaTime toDate 给出了错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186125/

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