为了账号安全,请及时绑定邮箱和手机立即绑定

Scala日期操作

标签:
Spark

转载请务必注明原创地址为:https://dongkelun.com/2018/06/01/scalaDate//

前言

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

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

1、字符串转日期

import java.text.SimpleDateFormatimport org.joda.time.DateTimeval 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 20182018-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.getTimeval second = between / 1000val hour = between / 1000 / 3600val day = between / 1000 / 3600 / 24val year = between / 1000 / 3600 / 24 / 365

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

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



作者:董可伦
链接:https://www.jianshu.com/p/87ad3fa33b12


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消