我有一个本地日期/时间戳,我有一个以String格式存储的时区偏移量( myStringTimeStamp 变量名称如下)。我需要将本地日期/时间戳转换为UTC时间。
时间戳的格式为: yyyy-MM-dd HH:mm:ss
我尝试过各种变体:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
//Convert timestamp to date
Date d = sdf.parse(myStringTimeStamp, new ParsePosition(0));
newTimeStamp = sdf.format(d);
但我似乎无法弄清楚正确的公式。有帮助吗?
我不能使用第三方库/框架。
答案 0 :(得分:1)
问题似乎是因为您在解析之前设置了目标时区。
首先解析,然后设置时区,最后格式化。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
//Convert timestamp to date
Date d = sdf.parse(myStringTimeStamp, new ParsePosition(0));
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
newTimeStamp = sdf.format(d);
答案 1 :(得分:1)
你有没有尝试过:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
//Convert timestamp to date
Date d = sdf.parse(myStringTimeStamp, new ParsePosition(0));
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
newTimeStamp = sdf.format(d);