GMT:Greenwich Mean Time,格林威治规范工夫
// 例1:依据1970-1-1到某个工夫点通过的毫秒数,推出具体工夫点// 1.创立Calendar对象,依据毫秒数设置对象的工夫Calendar c = Calendar.getInstance();c.setTimeInMillis(46800999);// 2.创立SimpleDateFormat对象,指定格局 时:分:秒DateFormat df = new SimpleDateFormat("HH:mm:ss");// 3.设置时区,GMT示意0时区df.setTimeZone(TimeZone.getTimeZone("GMT"));// 4.格式化工夫System.out.println(df.format(c.getTime()));// 例2:依据某个字符串失去指定格局的日期String str = "2011-01-18 00:00:00.0";DateFormat df = new SimpleDateFormat("yyyy-MM-dd");Date date = df.parse(str);String newstr = df.format(date);
// 获取所有可用的时区String[] zones = TimeZone.getAvailableIDs();// 模式字母y    yearM    month in yeard    day in monthD    day in yearH    hour in day(0-23)h    hour in day(1-12)m    minute in hours    second in minuteS    millisecond
留神!创立 Calendar 类对象并设置了时区后,应用 Calendar.getTime() 办法返回的是一个 java.util.Date 对象,这个 Date 对象并不会应用 Calendar 对象的时区,而是应用以后零碎的时区;

SimpleDateFormat 和 DateTimeFormatter 的区别

  1. 创建对象的形式:

    • SimpleDateFormat 通过 new 来创建对象,它是线程不平安的,因而在多线程程序中,每次应用 SimpleDateFormat 时都要创立一个实例;
    • DateTimeFormatter 通过 ofPattern 办法创建对象,它是线程平安的,因而在多线程程序中不必每次应用都创立一个实例;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS");
  1. parse 办法:

    • SimpleDateFormat 的 parse 办法将 String 转为 Date
    • DateTimeFormatter 的 parse 办法将 String 转为 Temporal Accessor
  2. format 办法:

    • SimpleDateFormat 的 format 办法将 Date 转为 String
    • DateTimeFormatter 的 format 办法将 Temporal Accessor 转为 String

参考资料:
https://linuxtut.com/en/935f4...