/* 第一代日期类Date 1.Date //精确到毫秒,代表特定的瞬间 2.SimpleDateFormat //格式和解析日期的类 第二代日期类Calendar Calendar类是一个抽象类,为一组日历字段之间的转换提供了一些方法 并为操作日历字段(如获取下星期的日期)提供了一些方法 构造器为private,可以通过getInstance()来获取实例 第三代日期类 (jdk8加入) LocalDate(获取日期 年月日) LocalTime(获取时间 时分秒) LocalDateTime(获取日期时间 年月日时分秒) 其他方法 plus 和 minus 方法可以对当前时间进行加或者减 ...... DateTimeFormatter格式日期类 DateTimeFormatter xxx = DateTimeFormatter.ofPattern(格式) String xx = xxx.format(日期对象) Instant时间戳 提供了一系列和Date类转换的方式 Instant---->Date Date date = Date.from(instant); Date---->Instant Instant instant = date.toInstant(); */ import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date;//Date类在java.util包 public class Date_ { public static void main(String[] args) { Date d1 = new Date(); //获取当前系统时间,默认输出为国外方式,因此通常对格式进行转换 System.out.println("当前日期=" + d1); Date d2 = new Date(9234567); //通过指定毫秒数得到时间 System.out.println("d2=" + d2); //获取某个时间对应的毫秒数 //创建SimpleDateFormat对象,指定相应格式(使用的字母是规定好的) SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年mm月dd日 hh:mm:ss"); String format = simpleDateFormat.format(d1);//将日期转换成指定格式的字符串 System.out.println("当前日期=" + format); } } class Calendar_{ public static void main(String[] args) { Calendar c = Calendar.getInstance();//创建对象,不能new,因为构造器私有 System.out.println(c); //获取日历对象的某个日历字段 System.out.println("年=" + c.get(Calendar.YEAR)); System.out.println("月=" + c.get(Calendar.MONTH) + 1);//因为月的编号从0开始,所以+1 System.out.println("日=" + c.get(Calendar.DAY_OF_MONTH)); System.out.println("时=" + c.get(Calendar.HOUR));//12小时制,Calendar.HOUR_OF_DAY24小时制 System.out.println("分=" + c.get(Calendar.MINUTE)); System.out.println("秒=" + c.get(Calendar.SECOND)); //Calendar没有专门的格式化方法,所以需要自己组合 System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1) + "月"); } } class LocalDate_{ public static void main(String[] args) { //使用now()返回表示当前日期时间的对象 LocalDateTime l1 = LocalDateTime.now(); System.out.println(l1); //使用DateTimeFormatter对象来进行格式化 //创建DateTimeFormatter对象 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format = dateTimeFormatter.format(l1); System.out.println("格式化的日期=" + format); System.out.println("年=" + l1.getYear()); System.out.println("月=" + l1.getMonth());//英文 System.out.println("月=" + l1.getMonthValue()); System.out.println("日=" + l1.getDayOfMonth()); System.out.println("时=" + l1.getHour()); System.out.println("分=" + l1.getMinute()); System.out.println("秒=" + l1.getSecond()); //提供 plus 和 minus 方法可以对当前时间进行加或者减 LocalDateTime localDateTime = l1.plusDays(365); System.out.println("365天后=" + dateTimeFormatter.format(localDateTime)); LocalDateTime localDateTime2 = l1.minusMinutes(3600); System.out.println("3600分钟前日期=" + dateTimeFormatter.format(localDateTime2)); } } class Instant_{ public static void main(String[] args) { //1.通过 静态方法 now() 获取表示当前时间戳的对象 Instant i1 = Instant.now(); System.out.println(i1); //2. 通过 from 可以把 Instant 转成 Date Date date = Date.from(i1); //3. 通过 date 的 toInstant() 可以把 date 转成 Instant 对象 Instant instant = date.toInstant(); } }