java – TimeZone.getTimeZone(“CST”)返回GMT
发布时间:2020-05-25 15:04:57 所属栏目:Java 来源:互联网
导读:我正在将时间从CST转换为当地时间,但getTimeZone似乎无法正常工作. String cstTime = 2013-06-21 14:00:00; SimpleDateFormat simpleDateFormat = new SimpleDateFormat( yyyy-MM-dd HH:mm:ss); simpleDateFormat.
|
我正在将时间从CST转换为当地时间,但getTimeZone似乎无法正常工作. String cstTime = "2013-06-21 14:00:00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("CST"));
Date date = null;
try {
date = simpleDateFormat.parse(cstTime);
} catch (ParseException e) {
System.out.println("Parse time error");
e.printStackTrace();
}
TimeZone destTz = TimeZone.getDefault();//here I should get EDT on my phone
simpleDateFormat.setTimeZone(destTz);
String convertedLocalTime = simpleDateFormat.format(date);
//the converted time I get is "2013-06-21 10:00:00"
//but it should be "2013-06-21 15:00:00"
它似乎是使用GMT而不是CST,以下是我在调试时得到的: String abc = TimeZone.getTimeZone("CST").toString();
System.out.println("CST:"+abc);
Output:
I/System.out(19404): CST:java.util.SimpleTimeZone[id=GMT,offset=0,dstSavings=3600000,useDaylight=false,startYear=0,startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0]
它是否使用GMT?为什么.. 编辑: 终于通过使用它得到了它 simpleDateFormat.setTimeZone(TimeZone.getTimeZone( "GMT-5")); //GMT-5 is for CDT,I found my server is actually using CDT not CST 仍然不知道为什么使用字符串“CST”无法正常工作… 解决方法来自getTimeZone的javadoc:Returns a TimeZone corresponding to the given id,or GMT for unknown ids. An ID can be an Olson name of the form Area/Location,such as America/Los_Angeles. The getAvailableIDs() method returns the supported names. 尝试使用getAvailableIDs? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
