Java 8 之前获取日期
System类获取时间信息
// 返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
long l = System.currentTimeMillis();
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取字符串格式的当前时间
String format = simpleDateFormat.format(date);
System.out.println(format); // 2021-09-30 16:46:12
try {
// 将字符串格式的日期转换成date对象
Date parse = simpleDateFormat.parse("2021-09-30 16:46:12");
System.out.println(parse);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar类
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = simpleDateFormat.format(date);
System.out.println("time = " + time);
java8中相关的日期类
// java.time.LocalDate类主要用于描述年-月-日格式的日期信息,该类不表示时间和时区信息
LocalDate date = LocalDate.now();
// java.time.LocalTime 类主要用于描述时间信息,可以描述时分秒以及纳秒。
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
int year = dateTime.getYear(); // 获取年
int month = dateTime.getMonthValue(); // 获取月份
int day = dateTime.getDayOfMonth(); // 获取号
int hour = dateTime.getHour(); // 获取小时
int minute = dateTime.getMinute(); // 获取分钟
int second = dateTime.getSecond(); // 获取秒
System.out.println("当前时间:" + year + "年" + month + "月" + day + "号 " + hour + "点" + minute + "分" + second + "秒");
System.out.println("---------------------------------");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(dateTime);
System.out.println("format = " + format);
TemporalAccessor parse = dateTimeFormatter.parse(format);
System.out.println("parse = " + parse);
Instant类
Instant now = Instant.now();
System.out.println("now = " + now); // now = 2021-09-30T08:59:02.294366100Z
// 加上时区所差的8个小时
OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));
System.out.println("offsetDateTime = " + offsetDateTime); // offsetDateTime = 2021-09-30T17:00:11.668591+08:00