从GMT到CST的java转换显示7小时的差异
我用下面的函数将日期“2016-04-26 12:00:00”转换为GMT和CST时代。我得到了下面的日期。我不确定我在这里做错了什么
1461672000000 UTC ——> Tue, 26 Apr 2016 12:00:00 GMT
1461690000000 CST —> Tue, 26 Apr 2016 17:00:00 GMT
代码:
long epoch = 0;
String str = "2016-04-26 12:00:00";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("CST")); //This GMT or CST
Date datenew = df.parse(str); //parsethe date
epoch = datenew.getTime(); //get the epoch time
# 1 楼答案
正如埃里克森在评论中回避的那样,你的期望似乎与实施背道而驰;在日期格式中设置时区时,使用日期格式。parse()方法生成它正在解析的字符串,就像它来自时区(并将其转换为本地时间)。所以你所注意到的结果正是你所期待的
要解决此问题,请使用日期格式。改为format()方法:
输出: