作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从给定的时区获取当前时间,例如“IST”或“印度标准时间”等。当输入是“印度标准时间”或“协调世界时”时,我无法获得时间。它仅适用于“IST”或“UTC”或“EST”等。我尝试过使用 Joda-Time 和 SimpleDateFormat。
SimpleDateFormat sd = new SimpleDateFormat(
"yyyy.MM.dd G 'at' HH:mm:ss z");
Date date = new Date();
sd.setTimeZone(TimeZone.getTimeZone("IST"));
System.out.println(sd.format(date));
DateTime now = new DateTime();
//DateTimeZone LDateTimeZone = DateTimeZone.forID( "Asia/Kolkata" );
DateTimeZone LDateTimeZone = DateTimeZone.forID( "IST" ); //deprecated
System.out.println( "Joda-Time zone: " + now.toDateTime( LDateTimeZone ) );
有什么办法可以同时处理这两个输入吗?
最佳答案
我强烈建议不要使用遗留的 java.util.Date
。您应该改用适当的 java.time
类。
在 java.time.ZonedDateTime
中,您可以创建时区别名映射并根据需要填充它。它不是很漂亮,但它确实有效。
Map<String, String> aliasMap = new HashMap<>();
aliasMap.put("IST", "Asia/Calcutta");
aliasMap.put("Indian Standard Time", "Asia/Calcutta");
ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("Indian Standard Time", aliasMap));
关于java - 如何从java中给定的时区名称获取当前时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42944040/
我是一名优秀的程序员,十分优秀!