TimeZone.getTimeZone ("CST") gibt GMT zurück
Ich konvertiere die Zeit von CST nach Ortszeit abergetTimeZone
scheint nicht richtig zu funktionieren.
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"
Anscheinend wird GMT anstelle von CST verwendet. Folgendes habe ich beim Debuggen erhalten:
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]
Benutzt es GMT? warum .. Danke im Voraus!
Bearbeiten:
Endlich hat es funktioniert mit
simpleDateFormat.setTimeZone(TimeZone.getTimeZone( "GMT-5")); //GMT-5 is for CDT, I found my server is actually using CDT not CST
Ich weiß immer noch nicht, warum die Verwendung der Zeichenfolge "CST" nicht funktioniert ...