将字符串中的日期转换为 Android 上指定的区域设置

发布于 2024-12-02 12:57:27 字数 402 浏览 1 评论 0原文

我在字符串中有这个日期:

“2011-08-28 08:30:00 +0000”

我希望将其转换为匈牙利语语言环境中的 java.util.Date,所以我尝试使用此格式化程序:

DateFormat currentDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", new Locale("hu"));

我希望与currentDateFormat.parse 我得到“2011-08-28 10:30:00”作为日期(匈牙利是 GMT+2),但它仍然“2011-08-28 08:30:00”。我尝试使用 setTimeZone(TimeZone.getDefault()) 但没有帮助。

有什么想法吗?

I have this date in string:

"2011-08-28 08:30:00 +0000"

I want this to convert to a java.util.Date in hungarian Locale, so I try to use this formatter:

DateFormat currentDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", new Locale("hu"));

I am expecting that with currentDateFormat.parse I get "2011-08-28 10:30:00" as date (Hungary is GMT+2) but it is still "2011-08-28 08:30:00". I've tried to use setTimeZone(TimeZone.getDefault()) but didn't help.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妳是的陽光 2024-12-09 12:57:27

Android 仅使用 UTC,不再使用 GMT。

问题是你的日期不是明确的 UTC,并且 Android 不知道如何处理它,因此它的默认行为是假设你的日期位于当前时区。

Android only uses UTC, no more GMT.

The problem is the date you have there is not clearly UTC and Android doesn't know what to do with it so it's default behavior is to just assume your date is in the current time zone.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文