我嘗試下面的方法和搜索在網絡找到這個解決方案,但沒有運氣:尋找解決方案,用於IST將字符串轉換成PST:字符串轉換爲日期在PST
String string = new Date().toString();
System.out.println(string);
SimpleDateFormat dt = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
dt.setTimeZone(TimeZone.getTimeZone("PST"));
Date D = dt.parse(string);
System.out.println(""+ D);
甚至當我設置時區PST,我看到了放於IST 這裏是出放:
星期二4月18日18時58分09秒IST 2017年 星期二4月18日18時58分09秒IST 2017年
我在這裏嘗試了另一個選項我看到它甚至是showi納克PST時間,但我看到下面的輸出是一個有點混亂:
public static Date convertFromOneTimeZoneToOhter(Date dt,String from,String to) {
TimeZone fromTimezone =TimeZone.getTimeZone(from);//get Timezone object
TimeZone toTimezone=TimeZone.getTimeZone(to);
long fromOffset = fromTimezone.getOffset(dt.getTime());//get offset
long toOffset = toTimezone.getOffset(dt.getTime());
//calculate offset difference and calculate the actual time
long convertedTime = dt.getTime() - (fromOffset - toOffset);
Date d2 = new Date(convertedTime);
return d2;
}
OUT PUT: 轉換日期:星期二4月18日6時28分09秒IST 2017年
是否有人可以在此幫助:我發現很多解決方案將IST日期時間轉換爲PST字符串,但沒有將IST/EST日期轉換爲PST日期。 正如我上面提到,我們可以格式化爲一個字符串,但我期待的轉換回日期的例子
您正在打印Date.toString()的結果。不要這樣做。 「Date」對象不具有*時區 - 它只是一個實例。 'convertFromOneTimeZoneToOhter'方法在其整體目的上存在根本性缺陷。使用'SimpleDateFormat'指定格式化所需的時區。 –
你有沒有考慮過使用更好的日期/時間API? (因爲'java.util.Date'對於你所需要的很糟糕 - 實際上它很糟糕)。對於Java <= 1.7,請使用[Joda-Time](http://www.joda.org/joda-time/)或[ThreeTen backport](http://www.threeten.org/threetenbp/),以及java> = 1.8,使用'java.time'類。花一些時間來學習這些,這是完全值得的。 – 2017-04-18 13:47:19
@JonSkeet,我使用SimpleDateFormat,但我可以將其轉換爲隻字符串。我的要求是將日期IST轉換爲日期PST。 – user7076183