創(chuàng)建Date對(duì)象,獲取的當(dāng)前時(shí)間有誤差怎么回事?電腦時(shí)間是13:47,結(jié)果是5:47,其他時(shí)間都對(duì),是什么原因?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloWorld {
? ??
? ? public static void main(String[] args) throws ParseException {
? ? ? ??
// 使用format()方法將日期轉(zhuǎn)換為指定格式的文本
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
? ? ? ??
// 創(chuàng)建Date對(duì)象,表示當(dāng)前時(shí)間
? ? ? ? Date now = new Date();
? ? ? ??
? ? ? ? // 調(diào)用format()方法,將日期轉(zhuǎn)換為字符串并輸出
System.out.println(sdf1.format(now));
System.out.println(sdf2.format(now));
System.out.println(sdf3.format(now));
// 使用parse()方法將文本轉(zhuǎn)換為日期
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
? ? ? ??
? ? ? ? ?// 調(diào)用parse()方法,將字符串轉(zhuǎn)換為日期
Date date = sdf.parse(d);
? ? ? ??
System.out.println(date);
}
}
結(jié)果如下:
2016年06月29日 05時(shí)47分33秒
2016/06/29 05:47
2016-06-29 05:47:33
Sun Jun 01 21:05:36 UTC 2014
2016-06-29
你電腦顯示的是東八區(qū)時(shí)間即北京時(shí)間。系統(tǒng)輸出的是零區(qū)時(shí)間,世界標(biāo)準(zhǔn)時(shí)間。剛好相差8小時(shí)。
2016-06-29
系統(tǒng)獲取的是UTC,協(xié)調(diào)世界時(shí),比電腦顯示的北京時(shí)間慢8小時(shí)