① java時間轉換,帶時區的
我假設了你的已知時間類型為Calendar,如果不是你也可以自己改成Date類型,代碼如下:
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.TimeZone;
publicclassTest{
(String[]args){
//假如這個是你已知的時間類型
Calendarcal=Calendar.getInstance();
cal.getTimeInMillis();
//北京時區GMT+8
Calendarbeijingcal=Calendar.getInstance();
beijingcal.clear();
beijingcal.setTimeZone(TimeZone.getTimeZone("GMT+8"));
beijingcal.setTimeInMillis(cal.getTimeInMillis());
DateFormatfmt=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
StringbeijingFormatStr=fmt.format(beijingcal.getTime());
System.out.println(beijingFormatStr);
}
}
② java中Date類中的Date(String s)構造方法如何使用
new Date(s):分配 Date 對象並初始化此對象,以表示字元串 s 指出的日期和時間
格式可以是:1970 年 1 月 1 日,00:00:00 GMT
它接受許多版語法;特別是它識別權 IETF 標准日期語法:"Sat, 12 Aug 1995 13:30:00
GMT"。它也了解美國大陸時區縮寫,但對於一般用途,應該使用時區偏移量:"Sat, 12 Aug 1995 13:30:00
GMT+0430"(比格林威治子午線晚 4 小時 30 分)。如果沒有指定時區,則假定用本地時區。GMT 和 UTC 被認為是相同的。
或者把雙引號去掉,就是以毫秒形式表示的日期了
Date(long date)
分配 Date 對象並初始化此對象,以表示自從標准基準時間(稱為「歷元(epoch)」,即 1970 年 1 月 1 日
00:00:00 GMT)以來的指定毫秒數
先確定問題來源:JAVA獲得的時區和系統時區哪個有問題
若是JAVA獲得的時區有問題,在代碼前加上下內面這句話容就行了:TimeZone tz =TimeZone.getTimeZone("Asia/Shanghai");TimeZone.setDefault(tz)
④ 如何使用java將GMT轉換為UTC格式
String toGMT(Date date) {
try {
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "GMT"));
format.setCalendar(cal);
return format.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
⑤ java中utc時間怎麼轉換為本地時間
utc毫秒值是個絕對值,和時區無關。如果需要轉換為對應時區的時間表示,可以使用java.text.DateFormat的setTimeZone(timeZone)之後,進行format