日期对象
Date
Date
: 表示特定的瞬间,精确到毫秒.通过查阅APIDate
类的描述,发现Date
类拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象 .
Date date = new Date ( 1607616000000 L) ;
System. out. println ( date) ;
可是将毫秒值转成日期对象后,输出的格式不利于我们阅读,继续查询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 ( 1607616000000 L) ;
String str_time = df. format ( date) ;
System. out. println ( str_time) ;
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 ( 1607616000000 L) ;
DateFormat df = new SimpleDateFormat ( “yyyy年MM月dd日”) ;
String str = df. format ( date) ;
练习二:把String转换成Date对象
String str = ”2020 年12 月11 日”;
DateFormat df = new SimpleDateFormat ( “yyyy年MM月dd日”) ;
Date date = df. parse ( str ) ;
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-03int 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());