3 回答

TA貢獻2080條經(jīng)驗 獲得超4個贊
您可以使用Java 8及更高版本的java.time包:
ZonedDateTime zonedDateTime = Instant.ofEpochMilli(1566817891743L).atZone(ZoneOffset.UTC);

TA貢獻1906條經(jīng)驗 獲得超3個贊
我不明白為什么你要創(chuàng)建一個新的 DateTime,然后從那里獲取毫秒(如果你一開始就已經(jīng)有毫秒了)。也許我誤解了你的問題。毫秒與時區(qū)無關。時區(qū)用于比較兩個不同地點的同一時刻并獲取各自的日期。這是我的解決方案
如果你想要一個毫秒的時間戳:
long eventDate = 1566297258721L;
Timestamp time=new Timestamp(eventDate);
System.out.println(time);
結果將是2019-08-20 10:34:18.721,也是希望的 SQL 格式
如果您想將某個時刻從一個時區(qū)轉(zhuǎn)換為另一個時區(qū):
您將獲得實際時區(qū)的時刻,并將其轉(zhuǎn)換為不同的時區(qū),以便查看其他國家/地區(qū)的時間
long eventDate = 1566297258721L;
Calendar calendar = Calendar.getInstance();
calendar.setTime(eventDate);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
dateFormat.format(calendar.getTime());
我希望這些片段有用??鞓肪幊蹋?/p>

TA貢獻1966條經(jīng)驗 獲得超4個贊
您可以嘗試以下操作,
long eventDate = 1566297258721L;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z", Locale.US);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String stringDate = simpleDateFormat.format(new Date(eventDate));
System.out.println(stringDate);
它給了我以下輸出。
2019-08-20 10:34:18 協(xié)調(diào)世界時
添加回答
舉報