这个问题在这里已经有答案了:
奇怪的java时区日期转换问题(3个答案)
一年前关门了。
我正在尝试将日期字符串从java中的另一个时区转换为utc格式。我们只有像“-06:00”这样的时区偏移量。有谁能帮我用时区偏移量把日期时间转换成utc格式吗。
谢谢
这适用于java版本1.7。我尝试了以下代码段,但接收的输入与输出相同。
String dateInString = "02/04/2019 18:17:15";
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = formatter.parse(dateInString);
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("+5:30"));
String dateStr = dateFormat.format(date);
System.out.println(dateStr);
输出2019年4月2日18:17:15
1条答案
按热度按时间carvr3hs1#
不幸的是,
TimeZone.getTimeZone(String ID)
退货:指定的
TimeZone
,或gmt区域(如果无法理解给定的id)。这个
"+5:30"
时区不可理解,所以你得到gmt。更改为
"GMT+5:30"
将使您的代码工作,即它将打印:请参阅的javadoc
TimeZone
为有效ID
语法:自定义时区id的语法为:
如你所见,它必须总是从
GMT
.