日期对象

日期对象

Date

  • Date : 表示特定的瞬间,精确到毫秒.通过查阅APIDate类的描述,发现Date类拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象.
  • 在这里插入图片描述
//创建日期对象,把当前的毫秒值转成日期对象
Date date = new Date(1607616000000L);
System.out.println(date);
//打印的结果 : Fri Dec 11 00:00:00 CST 2020
  • 可是将毫秒值转成日期对象后,输出的格式不利于我们阅读,继续查询API,Date中有getYear , getMouth等方法,不过他们已经过时了,往下查就会看到toString方法.
    在这里插入图片描述
  • 点开toString( )方法查询,上面打印的date对象就是默认调用了这个toString方法,并且在这个方法下面还有让我们参鉴toLocaleString方法,点进去,这个方法又过时了,从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代。 既然这个方法被DateFormat.format(Date date) 取代,那么就要去查阅DateFormat类.
DateFormat
  • DateFormat: 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间.日期/时间格式化子类(如 : SimpleDateFormat类)允许进行格式化(也就是日期->文本),解析(文本->日期)和标准化
  • 我们通过这个类可以帮我们完成日期和文本之间的转换
  • DateFormat : 可以帮助进行格式化并解析任何语言环境的日期/时间,对于月,星期,甚至是日历格式(阴历和阳历),其代码可完全与语言环境的约定无关.
日期格式
  • 要格式化一个当前语言环境下的日期也就是(日期 ->文本),要通过下面的方法来完成,DateFormat是抽象类我们需要使用其子类 : SimpleDateFormat来创建对象
  • 构造方法(函数)
    • SimpleDateFormat(String pattern)
  • DateFormat类方法
    • String format(Date date)
    • 代码演示
//创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df = new SimpleDateFormat("yyyy-MM-dd")//对日期进行格式化
Date date = new Date(1607616000000L);
String str_time = df.format(date);
System.out.println(str_time);//2020-12-11
  • DateFormat类的作用 : 即可以将一个Date对象转换 为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象.
  • 指定格式的具体规则我们可以参照SimpleDateFormat类的说明,简单介绍 : 规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出.
  • 当出现 y 时,会将 y 替换成年
  • 当出现 M 时,会将 M 替换成月
  • 当出现 d 时,会将 d 替换成日
  • 当出现 H 时,会将 H 替换成时
  • 当出现 m 时,会将 m 替换成分
  • 当出现 s 时,会将 s 替换成秒

DateFormat类常用的方法

  • String format(Date date) : 将一个Date格式化为日期/时间字符串
  • Date parse(String source) : 解析文本,生成一个日期
练习一:把Date对象转换成String
Date date = new Date(1607616000000L);//Fri Dec 11 00:00:00 CST 2020
DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
String str = df.format(date);
//str中的内容为2020年12月11日

练习二:把String转换成Date对象
String str =20201211日”;
DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
Date date = df.parse( str );
//Date对象中的内容为Fri Dec 11 00:00:00 CST 2020

LocalDate

  • Java.time.LocalDate : LocalDate 是一个不可变的类,它表示默认格式(yyyy-MM-dd)的日期,我们可以使用now() 方法得到当地时间,也可以提供输入年份,月份,日期的输入参数来创建一个LocalDate实例
LocalDate today = LocalDate.now();
System.out.println("Current(当前日期) Date=" + today);

LocalDate firstDay = LocalDate.of(2019, Month.JANUARY, 1);
System.out.println("Specific(特定日期) Date=" + firstDay);

LocalDate dateFromBase = LocalDate.ofEpochDay(365);
System.out.println("365th day from base date= " + dateFromBase);

LocalDate hundredDay2019 = LocalDate.ofYearDay(2019, 100);//获得日期是此年中的第几天
System.out.println("100th day of 2014=" + hundredDay2019);
  • 打印结果
Current Date=2019-05-21
Specific Date=2019-01-01
365th day from base date= 1971-01-01
100th day of 2019=2019-04-10
  • static LocalDate parse(CharSequence text) 从一个文本字符串(如2007-12-03获取一个LocalDate的实例)
  • String toString() : 将此日期输出为String,如 : 2007-12-03
  • int getYear( ) : 获取当前日期的年份
  • int getMothValue( ) : 获取当前日期的月份
  • DayOfWeek getDayOfWeek( ) : 表示该对象表示的日期是星期几
  • int getDayOfMoth( ) : 表示该对象表示的日期是这个月的第几天
  • int getDayOfYear( ) : 表示该对象表示的日期是今年的第几天
  • LocalDate withYear(int year) : 修改当前对象的年份
  • LocalDate withMoth(int moth) : 修改当前对象的月份
  • boolean isLeapYear( ) : 判断是否是闰年
  • int lengthOfMoth( ) : 这个月有多少天
  • int lengthOfYear() : 该对象表示的年份有多少天(365或者366)
  • LocaDate plusYear(long yearsToAdd ) : 当前对象增加指定的年份数
  • LocaDate plusMoth(long monthsToAdd) : 当前对象增加指定的月份数
  • LocaDate plusDays(long daysToAdd) : 当前对象增加指定的天数
  • LocaDate minusYear(long yearToSubtract) : 当前对象减去指定的年数
  • LocaDate minusMoths(long mothsToSubtract) : 当前对象减去注定的月数
  • LocalDate minusDays(long daysToSubtract) : 当前对象减去指定的天数
  • int compareTo(ChronoLocalDate other) : 比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚

LocalTime

  • java.time.LocalTime:LocalTime 是一个不可变的类,它的实例代表一个符合人类可读格式的时间,默认格式是 hh:mm:ss.zzz。像 LocalDate 一样,该类也提供了时区支持,同时也可以传入小时、分钟和秒等输入参数创建实例
  • static LocalTime now( )获取当前时分秒
  • LocalTime withNano(int n) 一般设置为0 清除纳秒

LocalDateTime

  • java.time.LocalDateTime:LocalDateTime 是一个不可变的日期-时间对象,它表示一组日期-时间,默认格式是 yyyy-MM-dd-HH-mm-ss.zzz。它提供了一个工厂方法,接收 LocalDate 和LocalTime 输入参数,创建 LocalDateTime 实例
  • static LocalDateTime LocalDateTime() 获取当前年月日时分秒
  • 把当前时间转为指定格式输出
    • String format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值