gpt4 book ai didi

java - Android 中的本地时间

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:54 26 4
gpt4 key购买 nike

我正在开发 Android 应用程序。用户可以发送帖子并可以看到彼此的帖子,就像 Twitter 一样。这里有一个时间问题。

当服务器从数据库序列化时间戳并作为响应发送时,它会响应如下字符串:2011-09-01 13:20:30+00:00"我认为 +00:00 部分是 UTC offset

我想知道将此字符串解析为本地时区中的某个时间对象的好方法是什么?这样我就可以在用户界面上正确显示它?

谢谢!

最佳答案

SimpleDateFormat 能够以有意义的方式独立捕获偏移量。您希望将偏移量转换为区域,而不将其显式指定给 parser 实例。

使用SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssXXX");
try {
System.out.println(sdf.parse(date));
} catch (ParseException e) {
e.printStackTrace();
}

给予,

Thu Sep 01 18:50:30 IST 2011

joda时间库提供了替代解决方案。

DateTimeFormatter 能够解析添加到模式中的 Z 的格式,并且解析的日期位于用户默认时区

DateTimeFormatter parser = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ssZ");
String date = "2011-09-01 13:20:30+00:00";

System.out.println(parser.parseDateTime(date));
System.out.println(parser.parseDateTime(date).toDate());

给予,

2011-09-01T18:50:30.000+05:30
Thu Sep 01 18:50:30 IST 2011

您可以选择上面的任何日期格式,对其进行修改,进一步处理它并用作您的应用程序的一部分。

关于java - Android 中的本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21597585/

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