【发布时间】:2018-04-06 12:08:59
【问题描述】:
代码示例:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
System.out.println(dateFormat.getTimeZone());
System.out.println(dateFormat.parse(time));
// dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
我不想使用评论区。
应根据我在输入字符串中给出的IST 设置区域:
String time ="2018-04-06 16:13:00 IST";
当前机器区是:America/New_York。我应该如何根据 z 获得对 IST 的区域更改?
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
String time ="2018-04-06 18:40:00 IST";
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
以上运行正常,但我不想明确设置区域。应该根据我在输入时间字符串中给出的 IST 来选择它。
【问题讨论】:
-
我建议你避免使用
SimpleDateFormat类。它不仅过时了,而且出了名的麻烦。今天我们在java.time, the modern Java date and time API 中做得更好。 -
你能提供样品吗
-
IST 不明确,可能是爱尔兰夏令时间、以色列标准时间或印度标准时间。正是出于这个原因,建议避免使用三个和四个字母的时区缩写。如果您在自己的计算机上获得其中一个区域,那么您在另一台计算机上运行代码的那一天就有可能获得不同的区域。您是否有可能在没有这种歧义的情况下获得日期时间字符串?例如,使用 region/city 格式的 UTC 偏移量和/或时区,例如 Asia/Tel_Aviv?
-
@AnkushNakaskar,“我应该如何将区域更改为 IST”是什么意思?这不是我可以回答的问题。请阅读help/asking 并将您的问题发送到minimal reproducible example。
标签: java date timezone simpledateformat datetime-parsing