Java日期

Java任意日期转换成编译器能识别的类型,然后对日期进行计算(算两个日期的差值……)

起初我是想把

例如1999年6月29日 1999/06/29

转换成能够进行日期加减法等计算的形式,然后发现这个类很好用,

一开始看其他人的代码也不是很理解,因为他们把格式化形式和输入的源形式写成一种了,即

yyyy-mm-dd和2018-10-12 ,其实是2018/10/12也能用yyyy-mm-dd处理,详细可以阅读下文。

后来自己试了一下,发现真的很好用,现在把我的测试例子发出来,帮助和我一样存在疑惑的人。

日期转换

使用java.text.SimpleDateFormat

    val dateStr:String = "2018年2月1日"
    val pattern =  "yyyy年MM月dd日"
    val date = new SimpleDateFormat(pattern).parse(dateStr)
    println(date) //Thu Feb 01 00:00:00 CST 2018
    val dateStr:String = "2018/2/1"
    val pattern =  "yyyy/MM/dd"
    val date = new SimpleDateFormat(pattern).parse(dateStr)
    println(date) //Thu Feb 01 00:00:00 CST 2018
	val pattern =  "yyyy/MM/dd"
    val nowdate = new Date() 
    println(nowdate)    //Sun Jul 05 00:00:48 CST 2020
    val date_format = new SimpleDateFormat(pattern).format(nowdate)
    println(date_format) //2020/07/05

这个就可以随心所欲定制你的输入形式,输出是 SimpleDateFormat(也是Date) 对象

parse方法:将字符串类型解析为java的日期类型,就像前两个例子这种形式(pattern和dateStr形式上要对应):

Thu Feb 01 00:00:00 CST 2018

format方法:将日期类型格式化为字符串,按照你想要的pattern,比如我想要2000/2/21这种,第三个例子输出我想要的形式

2020/07/05

日期计算

先写个概念:时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

可以通过.getTIme()获取(网上教程很多,不罗列了)

计算两个日期直接的时间差,然后再除进制(比如除3600x24就是天,3600x24x30就是月(大概))

https://blog.csdn.net/sy793314598/article/details/79544796

关于日期计算,上面这个博客写得很全。

你可能感兴趣的:(java)