您现在的位置是:首页 > 文章详情

Scala日期操作

日期:2018-06-14点击:495
版权声明:本文由董可伦首发于https://dongkelun.com,非商业转载请注明作者及原创出处。商业转载请联系作者本人。 https://blog.csdn.net/dkl12/article/details/80700718

我的原创地址:https://dongkelun.com/2018/06/01/scalaDate//

前言

本文主要记录我自己对日期格式数据的一些常用操作,主要目的是备忘,方便随时查阅。本文没有将代码封装为函数,如果有需要的可以自行封装,注意每一部分的代码会依赖前面代码里的变量。

代码可以直接在spark-shell里运行(在scala里有的包没有)

1、字符串转日期

import java.text.SimpleDateFormat import org.joda.time.DateTime val dateStr = "2018-06-01" val pattern = "yyyy-MM-dd" val date = new SimpleDateFormat(pattern).parse(dateStr) val dateTime = new DateTime(date) println(date) println(dateTime)
Fri Jun 01 00:00:00 CST 2018 2018-06-01T00:00:00.000+08:00

2、日期转字符串

将上面的日期转成其他格式的字符串

println(new SimpleDateFormat("yyyyMMdd").format(date))
20180601

3、字符串转时间戳

println(date.getTime)
println(date.getTime)

4、计算时间差

val startDateStr = "2018-03-21" val endDateStr = "2018-03-22" val startDate = new SimpleDateFormat(pattern).parse(startDateStr) val endDate = new SimpleDateFormat(pattern).parse(endDateStr) val between = endDate.getTime - startDate.getTime val second = between / 1000 val hour = between / 1000 / 3600 val day = between / 1000 / 3600 / 24 val year = between / 1000 / 3600 / 24 / 365

如果需要结果为小数,以hour举例

import java.text.DecimalFormat val hour: Float = between.toFloat / 1000 / 3600 val decf: DecimalFormat = new DecimalFormat("#.00") println(hour) println(decf.format(hour)) //格式化为两位小数
24.0 24.00

参考资料

https://blog.csdn.net/qq_16038125/article/details/72834270

https://blog.csdn.net/springlustre/article/details/47273353

原文链接:https://yq.aliyun.com/articles/676197
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章