java - TimeZone.getTimeZone ("CST") 返回 GMT

标签 java android timezone

我正在将时间从 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=fals‌​e,startYear=0,startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,
startTime=0,en‌​dMode=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?

关于java - TimeZone.getTimeZone ("CST") 返回 GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242764/

相关文章:

java - Android 相机捕获请求和多个目标表面的问题

javascript - 为什么有这么多 IANA 时区名称?

javascript - 计算资源的可用性

java - FileNotFoundException 尝试从 Spring RepositoryRestController 下载文件

java - 如何在原始数组中收集 Stream 的结果?

android - 事件总线库机制是否与使用静态变量在 Activity 之间传递数据一样糟糕?

mysql - MySQL 中的 '2018-03-22 00:00:00"有什么问题?

java - 如何以编程方式在中心裁剪特定尺寸的位图

java - 在 Windows 上无需管理员权限运行 Hadoop MR 作业

java - 如何在不丢弃中间字符串的情况下验证在 EditText 中键入的字符串?