【发布时间】:2018-03-02 06:17:42
【问题描述】:
我位于新加坡(时区 - “亚洲/新加坡”)的系统从印度尼西亚的外部系统(时区 - “亚洲/雅加达”)接收字符串日期时间 (yyyy-MM-dd HH:mm:ss)。
如何在 java 1.7 中将接收到的字符串日期时间转换为 UTC?
这是我的代码:
public void convertToUtc() {
String inputTime = "2018-02-02 10:09:00";
TimeZone inputTz = TimeZone.getTimeZone("Asia/Jarkarta");
TimeZone utcTz = TimeZone.getTimeZone("UTC");
SimpleDateFormat inputSdf = new SimpleDateFormat(DateTimeUtils.DATE_TIME_FORMAT);
inputSdf.setTimeZone(inputTz);
SimpleDateFormat utcSdf = new SimpleDateFormat(DateTimeUtils.ISO_DATE_TIME_FORMAT);
utcSdf.setTimeZone(utcTz);
// From time
Date fromDate = null;
try {
fromDate = inputSdf.parse(inputTime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Convert to UTC
String sUtcDateTime = utcSdf.format(fromDate);
System.out.println("UTC: " + sUtcDateTime); // UTC: 2018-02-02T10:09:00.000Z. Expected 2018-02-02T03:09:00.000Z
}
【问题讨论】:
-
请提供一些你尝试过的东西
-
程序没问题,问题是时区使用中的拼写错误,例如“亚洲/雅加达”
-
嘿,感谢您的指出。好尴尬。花了一个小时调试。