下面仅列举常用的日期、时间,像不常用的时区、历法什么的就没弄了。
public class TimeTest extends BaseTest {
@Test
public void dateTest() {
//日期
//各种静态方法都可以获取
//LocalDate date = LocalDate.of(2018, 4, 11);
//LocalDate date = LocalDate.parse("2018-04-11");
LocalDate date = LocalDate.now();
int year = date.getYear();
System.out.println(year);
Month month = date.getMonth();
System.out.println(month);
int day = date.getDayOfMonth();
System.out.println(day);
DayOfWeek dow = date.getDayOfWeek();
System.out.println(dow);
int len = date.lengthOfMonth();
System.out.println(len);
boolean leap = date.isLeapYear();
System.out.println(leap);
//通过TemporalField获取date数据
int year1 = date.get(ChronoField.YEAR);
System.out.println(year1);
//这里的月份就是正常的月份喽,而不需要+1表示
int month1 = date.get(ChronoField.MONTH_OF_YEAR);
System.out.println(month1);
int day1 = date.get(ChronoField.DAY_OF_MONTH);
System.out.println(day1);
//日期转换为某格式
System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));
//字符串转日期
// LocalDate.parse("20180411",DateTimeFormatter.ofPattern("dd/MM/yyyy"));
LocalDate parseDate = LocalDate.parse("20180411",
DateTimeFormatter.BASIC_ISO_DATE);
//修改年份,同理也可以修改 月、日
LocalDate date1 = date.withYear(2017);
System.out.println(date1.getYear());
//新增年份
LocalDate date2 = date.plusYears(1);
System.out.println(date2.getYear());
//下一个周六日期
LocalDate date3 = date.with(nextOrSame(DayOfWeek.SUNDAY));
System.out.println(date3.getDayOfMonth());
//该月最后一天
LocalDate date4 = date.with(lastDayOfMonth());
System.out.println(date4.getDayOfMonth());
// dayOfWeekInMonth 创建一个新的日期,它的值为同一个月中每一周的第几天
// firstDayOfMonth 创建一个新的日期,它的值为当月的第一天
// firstDayOfNextMonth 创建一个新的日期,它的值为下月的第一天
// firstDayOfNextYear 创建一个新的日期,它的值为明年的第一天
// firstDayOfYear 创建一个新的日期,它的值为当年的第一天
// firstInMonth 创建一个新的日期,它的值为同一个月中,第一个符合星期几要求的值
// lastDayOfMonth 创建一个新的日期,它的值为当月的最后一天
// lastDayOfNextMonth 创建一个新的日期,它的值为下月的最后一天
// lastDayOfNextYear 创建一个新的日期,它的值为明年的最后一天
// lastDayOfYear 创建一个新的日期,它的值为今年的最后一天
// lastInMonth 创建一个新的日期,它的值为同一个月中,最后一个符合星期几要求的值
// next/previous
// 创建一个新的日期,并将其值设定为日期调整后或者调整前,
// 第一个符合指定星期几要求的日期
// nextOrSame/previousOrSame
// 创建一个新的日期,并将其值设定为日期调整后或者调整前,第一个符合指定星
// 期几要求的日期,如果该日期已经符合要求,直接返回该对象
}
@Test
public void timeTest() {
//时间 时分秒-纳秒
//各种静态方法都可以获取
//LocalTime time = LocalTime.of(13, 45, 20);
//LocalTime time = LocalTime.parse("13:45:20");
LocalTime time = LocalTime.now();
int hour = time.getHour();
System.out.println(hour);
int minute = time.getMinute();
System.out.println(minute);
int second = time.getSecond();
System.out.println(second);
int na = time.getNano();
System.out.println(na);
}
@Test
public void dateTimeTest() {
//完整的日期和时间,都可以通过LocalDate和LocalTime转换而来
//date.atTime(13, 45, 20);
//time.atDate(date);
//可以从中获取完整的年月日、时分秒
LocalDateTime dateTime = LocalDateTime.now();
}
}