M.A*_*ali 5 java timezone android java-time
在我的 Android 应用程序服务器中,将返回UTC以下格式的日期(yyyy-MM-dd HH:mm:ss24 小时),我需要将这些时间转换为用户的时区,例如CST,IST。
我做了以下代码,但我知道它是否正确,请帮助我以正确的方式进行时区转换。
我将 UTC 日期作为 json 字符串并转换为用户的时区格式并显示 Android 端
private static Date utcDate;
private static DateFormat expireFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
try {
expireFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
utcDate = expireFormat.parse("2014-04-01 10:32:00");
System.out.println(TimeZone.getDefault().getID());
expireFormat.setTimeZone(TimeZone.getTimeZone(TimeZone.getDefault().getID()));
System.out.println(expireFormat.format(utcDate));
} catch (ParseException e) {
e.printStackTrace();
}
output of the code:
Asia/Calcutta
2014-04-01 16:02:00
Run Code Online (Sandbox Code Playgroud)
如果重新格式化的字符串确实是您想要获得的内容,则总体方法是可以的。
但还是有一些问题
SimpleDateFormat不是线程安全的类。将其设置为服务器内的静态字段是一个问题!
关于使用静态字段来保存中间 Date 对象,与 #1 相同。
“CST”是中国标准时间吗?中部标准时间(美国或澳大利亚)?古巴标准时间?一般来说,三个字母缩写 TimeZone 是个坏消息。如果可能的话,尝试使用 Olson 名称或别名。
这是服务器端还是android?如果它是服务器,您可能会受益于用于日期时间处理的新 Java 8 API。
| 归档时间: |
|
| 查看次数: |
5444 次 |
| 最近记录: |