在scala编程中,想实现从字符串转化为timestamp的过程中,查找相关资料,才发现资料还是不多。因此在这里将实现过程记录一下。
(注:这种应用情况非常广泛,如从文件中解析某个时间字符串,转化为时间戳再存到HIVE中)
首先写一个转换的函数。
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.Date
/*
* change date string to timestamp value
*/
def getTimestamp(x:String) :java.sql.Timestamp = {
// "20151021235349"
val format = new SimpleDateFormat("yyyyMMddHHmmss")
var ts = new Timestamp(System.currentTimeMillis());
try {
if (x == "")
return null
else {
val d = format.parse(x);
val t = new Timestamp(d.getTime());
return t
}
} catch {
case e: Exception => println("cdr parse timestamp wrong")
}
return null
}
然后进行测试:
//## test .only gettime can return timestamp value
var dates = getTimestamp("20151021235349")
System.out.println(dates.getTime())
在输出结果的时候,还是必须转化为gettime函数才能获得长的时间戳字符串。。