欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java8中的时间处理1 - LocalDate

程序员文章站 2022-03-08 13:11:20
...

LocalDate 是日期的不可变类,默认格式yyyy-MM-dd. 可以用 now() 方法获取当前日期,也可以传入年月日创建实例。这个类还提供了now()的重载方法,可以传入一个时区拿到现在那个时区的日期. java.sql.Date有的功能它都有。

import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;

/**
 * LocalDate Examples
 * @author somefuture
 *
 */
public class LocalDateExample {

	public static void main(String[] args) {
		LocalDate today = LocalDate.now();
		System.out.println("当前日期"+today);
		
		LocalDate firstDay_2014 = LocalDate.of(2014, Month.JANUARY, 1);
		System.out.println("特定日期"+firstDay_2014);
		
		
		//输入不合法参数会构造失败!这个有点意思
		//LocalDate feb29_2014 = LocalDate.of(2014, Month.FEBRUARY, 29);
		//Exception in thread "main" java.time.DateTimeException: 
		//Invalid date 'February 29' as '2014' is not a leap year因为2014年不是闰年
		
		//时区时间,可以用Asia/Shanghai或UTC+8
		LocalDate todayShanghai = LocalDate.now(ZoneId.of("Asia/Shanghai"));
		System.out.println("上海日期"+todayShanghai);

		//时区错误会报错
		//LocalDate todayIST = LocalDate.now(ZoneId.of("IST"));
		
		//从1970年创建时间
		LocalDate dateFromBase = LocalDate.ofEpochDay(365);
		System.out.println("1970年的365天后是"+dateFromBase);
		
		LocalDate hundredDay2014 = LocalDate.ofYearDay(2014, 100);
		System.out.println("2014年第100天是"+hundredDay2014);
                //2014年第100天是2014-04-10
	}
}