2015-10-21 94 views
0

是否有可能的日期/時間從美國東部時間(美國/紐約)轉換成UTC,給定的字符串格式yyyy-MM-dd HH:mm:ss如何將日期/時間從一個時區轉換爲另一個時區?

例子:

getUTCfromNY("2015-11-01 01:00:00", "NY"); 

應該輸出:

GMT Time: 2015-11-01 06:00:00 

編輯

以下兩個結果之間,應該採取哪種?

getUTCfromNY("2015-11-01 01:00:00", "NY")格林尼治標準時間:2015年11月1日:00:00

getUTCfromNY("2015-11-01 01:00:00", "NY")格林尼治標準時間:2015年11月1日:00:00

+2

是的,這是可能的。 – tnw

+0

['SimpleDateFormat'](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) – sam

+2

http://stackoverflow.com/questions/9429357/date時間轉換到其他時區-java – Rehman

回答

2

SimpleDateFormat#setTimezone()日期就是答案。一個格式化與ETC時區使用用於解析,另一個與UTC生產輸出字符串:

DateFormat dfNy = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT); 
dfNy.setTimeZone(TimeZone.getTimeZone("EST")); 
DateFormat dfUtc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT); 
dfUtc.setTimeZone(TimeZone.getTimeZone("UTC")); 

try { 
    return dfUtc.format(dfNy.parse(input)); 
} catch (ParseException e) { 
    return null;    // invalid input 
} 
2

您可以使用兩種SimpleDateFormat的,一個與EST時區解析日期字符串,一個用於打印與UTC時區

String format = "yyyy-MM-dd HH:mm:ss"; 
    SimpleDateFormat estFormatter = new SimpleDateFormat(format); 
    estFormatter.setTimeZone(TimeZone.getTimeZone("EST")); 
    Date date = estFormatter.parse("2015-11-01 01:00:00"); 

    SimpleDateFormat utcFormatter = new SimpleDateFormat(format); 
    utcFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); 

    System.out.println(utcFormatter.format(date)); 
0

請參考下文提到的代碼。

 DateFormat utcConverter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    utcConverter.setTimeZone(TimeZone.getTimeZone("GMT")); 
    String sampleDateTime = "2015-11-01 01:00:00"; 
    DateFormat nyConverter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    nyConverter.setTimeZone(TimeZone.getTimeZone("EST")); 
    Calendar nyCal = Calendar.getInstance(); 

    nyCal.setTime(nyConverter.parse(sampleDateTime)); 

    System.out.println("NY TIME :" +nyConverter.format(nyCal.getTime())); 

    System.out.println("GMT TIME :" +utcConverter.format(nyCal.getTime())); 
相關問題