将字符串中的日期转换为 Android 上指定的区域设置
我在字符串中有这个日期:
“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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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.