TimeZone.getTimeZone(“CST”) returns GMT

前端 未结 6 985
梦毁少年i
梦毁少年i 2020-12-17 20:25

I\'m converting time from CST to local time but getTimeZone doesn\'t seem to work properly.

    String cstTime = \"2013-06-21 14:00:00\";

    S         


        
相关标签:
6条回答
  • 2020-12-17 21:04

    One thing I found is that Java's TimeZone doesn't recognize "+09:00", but it does recognize "GMT+09:00" and "GMT+0900".

    0 讨论(0)
  • 2020-12-17 21:10

    You can use "CST6CDT" Timezone it will automatically provide you the correct time when the Central Daylight Time (CDT) switched back to CST or vice versa.

    0 讨论(0)
  • 2020-12-17 21:11

    From the javadoc for getTimeZone:

    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. 
    

    Try using getAvailableIDs?

    0 讨论(0)
  • 2020-12-17 21:11

    The following code helped me.

    TimeZone tzone = TimeZone.getTimeZone("Singapore");
    // set time zone to default
    tzone.setDefault(tzone);
    
    0 讨论(0)
  • 2020-12-17 21:16

    The following seems to have worked for me as was facing similar issues:

    Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Chicago"));
    
    0 讨论(0)
  • 2020-12-17 21:22

    for any date time conversion i would suggest using JODA date time, its help me solve a bunch of date time issues.

    you can initialize a date with a time zone, and convert between them very easily

    DateTimeZone zone = DateTimeZone.forID("Europe/London");
    

    or

    DateTimeZone zoneUTC = DateTimeZone.UTC;
    

    from JODA DATE TIME API

    DateTime(DateTimeZone zone)
    Constructs an instance set to the current system millisecond time using ISOChronology in the specified time zone.
    
    0 讨论(0)
提交回复
热议问题