日期字符串转时间戳
def timeChange(): Long ={
var str="2020-12-19 11:23:30"
//日期字符串的模式对象
val sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
//从给定字符串的开头解析文本以产生日期。 该方法可能不会使用给定字符串的整个文本。
val date: Date = sdf.parse(str)
//返回自此Date对象表示的自格林尼治标准时间1970年1月1日00:00:00以来的毫秒数。
val time: Long = date.getTime
println(time)//1608348210000
time
}
格式不能随便写,不然解析不了
def timeChange(): Long ={
var str="2020-12-19 11:23:30"
//格式不能随便写,不然解析不了
//Unparseable date: "2020-12-19 11:23:30"
val sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss")
val date: Date = sdf.parse(str)
val time: Long = date.getTime
println(time)//报错
time
}
时间戳转字符串
def TimeStamp2Str(): Unit ={
var l:Long=1608348210000L
val sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val str2: String = sdf.format(l)
println(str2)//2020-12-19 11:23:30
}
def TimeStamp2Str(): Unit ={
var l:Long=1608348210000L
val sdf=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss")
val str2: String = sdf.format(l)
println(str2)//2020-12-19 11-23-30
}
使用第三方库
添加依赖
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.4</version>
</dependency>
比如
SimpleDateFormat处理不了的复杂的时间字符串,就可以用joda库
import org.joda.time.DateTime
import java.util.Date
object Test extends App {
timeChange()
def timeChange(): Unit ={
var str="2020-12-19T11:04:23+08:00"
//利用joda库从字符串中提取时间
val time: Date = new DateTime(str).toDate
//获取时间戳
val time1: Long = time.getTime
println(time1)//1608347063000
}
}
总结
- 用joda库比较方便