package com.itheima.dao;
import java.time.LocalDateTime;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 年
System.out.println(cal.get(Calendar.YEAR)); // 2020
// 月
System.out.println(cal.get(Calendar.MONTH) + 1); // 1
// 日
System.out.println(cal.get(Calendar.DATE)); // 10
// 时
System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 11
// 分
System.out.println(cal.get(Calendar.MINUTE)); // 18
// 秒
System.out.println(cal.get(Calendar.SECOND)); // 6
// JAVA8的语法
LocalDateTime dt = LocalDateTime.now();
// 年
System.out.println(dt.getYear()); // 2020
// 一年当中的第几天
System.out.println(dt.getDayOfYear()); // 10
// 月
System.out.println(dt.getMonth()); // JANUARY
System.out.println(dt.getMonthValue()); // 1
}
}
public class Test {
public static void main(String[] args) {
// 获取时间戳
Calendar cal = Calendar.getInstance();
System.out.println(cal.getTimeInMillis()); // 1578626690553
System.out.println(System.currentTimeMillis()); // 1578626739117
// Java8方法
System.out.println(Clock.systemDefaultZone().millis()); // 1578626786766
}
}
public class Test {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH,0);
cal.set(Calendar.DAY_OF_MONTH,1); // 设置为1号,当前日期就是本月的第一天
// 创建格式化对象
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
// 通过格式化对象进行格式化
String time = format.format(cal.getTime());
System.out.println(time); // 2020年01月01日
// JAVA8
LocalDateTime today = LocalDateTime.now();
// 2020-01-01
System.out.println(LocalDate.of(today.getYear(), today.getMonth(), 1));
}
}
public class Test {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(dateFormat.format(cal.getTime())); // 2020年01月31日
// JAVA8
LocalDate today = LocalDate.now();
System.out.println(today.with(TemporalAdjusters.lastDayOfMonth())); // 2020-01-31
}
}
public class Test {
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();
System.out.println(dateFormat.format(date)); // 2020/01/10
// JAVA8
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate nowDate = LocalDate.now();
System.out.println(nowDate.format(newFormatter)); // 2020/01/10
}
}
public class Test {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(simpleDateFormat.format(cal.getTime())); // 2020/01/09
// JAVA8
LocalDateTime today = LocalDateTime.now();
LocalDateTime yesterday = today.minusDays(1);
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
System.out.println(yesterday.format(newFormatter)); // 2020/01/09
}
}
获取日期
public class Test {
public static void main(String[] args) {
// 获取当前的日期
// 默认是(yyyy-MM-dd)格式的日期
LocalDate today = LocalDate.now();
System.out.println("今天的日期是:" + today); // 今天的日期是:2020-01-10
// 指定一个日期
LocalDate date = LocalDate.of(2014, Month.JANUARY, 10);
System.out.println("指定的日期为:" + date); // 指定的日期为:2014-01-10
// 2020年的第32天是几号?
LocalDate localDate = LocalDate.ofYearDay(2020, 32);
System.out.println(localDate); // 2020-02-01
}
}
获取时间
public class Test {
public static void main(String[] args) {
// 默认格式(hh:mm:ss.zzz)
LocalTime time1 = LocalTime.now();
System.out.println("当前的时间是:" + time1); // 当前的时间是:14:54:11.078
// 指定一个精确时间
LocalTime specificTime = LocalTime.of(12, 20, 25, 40);
System.out.println(specificTime); // 12:20:25.000000040
}
}
获取日期时间
public class Test {
public static void main(String[] args) {
LocalDateTime time = LocalDateTime.now();
System.out.println("当前的日期时间是" + time);
// 当前的日期时间是2020-01-10T14:58:33.138
LocalDateTime time1 = LocalDateTime.of(LocalDate.now(), LocalTime.now());
System.out.println("当前的日期时间是" + time1);
// 当前的日期时间是2020-01-10T15:00:33.881
LocalDateTime time2 = LocalDateTime.of(2014, Month.JANUARY, 1, 10, 10, 30);
System.out.println("指定的日期时间是" + time2);
// 指定的日期时间是2014-01-01T10:10:30
}
}
public class Test {
public static void main(String[] args) {
// 判断今年是不是闰年
LocalDate today = LocalDate.now();
System.out.println(today.getYear()+"年是否是闰年?" + today.isLeapYear()); // 2020年是否是闰年?true
// 比较两个日期,今天是否在2021/01/01之前
System.out.println(today.isBefore(LocalDate.of(2021,1,1))); // true
// 比较今天是否在2021/01/01之后
System.out.println(today.isAfter(LocalDate.of(2021,1,1))); // false
// 为日期添加时间
System.out.println(today); // 2020-01-10
System.out.println(today.atTime(LocalTime.now())); // 2020-01-10T16:46:25.569
// 今天是2020/01/10 10天之后的日期是
System.out.println("10天之后的日期是:"+today.plusDays(10));
// 10天之后的日期是:2020-01-20
System.out.println("3周之后的日期是:"+today.plusWeeks(3));
// 3周之后的日期是:2020-01-31
System.out.println("20个月之后的日期是:"+today.plusMonths(20));
// 20个月之后的日期是:2021-09-10
// 第一天和最后一天
System.out.println("本月的第一天的日期是:"+today.with(TemporalAdjusters.firstDayOfMonth()));
// 本月的第一天的日期是:2020-01-01
System.out.println("今天的最后一天是:"+today.with(TemporalAdjusters.lastDayOfYear()));
// 今天的最后一天是:2020-12-31
// 根据指定的单位计算到另一个日期的时间量
LocalDate obj = LocalDate.parse("2020-01-15");
// ChronoUnit.DAYS 以天为单位
long time = today.until(obj, ChronoUnit.DAYS);
System.out.println("今天的日期是:"+today+",到达"+obj+"还有"+time+"天");
// 今天的日期是:2020-01-10,到达2020-01-15还有5天
}
}
public class Test {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
System.out.println(date); // 2020-01-10
System.out.println(date.format(DateTimeFormatter.ofPattern("d::MMM::uuuu"))); // 10::一月::2020
System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE)); // 20200110
Instant timestamp = Instant.now();
System.out.println(timestamp); // 2020-01-10T09:39:34.520Z
LocalDateTime dt = LocalDateTime.parse("27::四月::2020 21::39::48", DateTimeFormatter.ofPattern("d::MMM::uuuu HH::mm::ss"));
System.out.println(dt); // 2020-04-27T21:39:48
}
}