Scala日期操作

前言

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

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

1、字符串转日期

12345678

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)

12

Fri Jun 01 00:00:00 CST 20182018-06-01T00:00:00.000+08:00

2、日期转字符串

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

1

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

1

20180601

3、字符串转时间戳

1

println(date.getTime)

1

println(date.getTime)

4、计算时间差

123456789

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举例

12345

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

12

24.024.00

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Scala学习笔记

    之前看Scala编程思想学习Scala,只看完了一半多,就没再继续深入学习,导致一些Scala基础知识还不知道,而且过去这么长时间了,之前学过的也遗忘了,所以这...

    董可伦
  • Spark CoarseGrainedExecutorBackend 启动流程

    最近在进行Spark任务调度的源码学习,最开始对CoarseGrainedExecutorBackend的启动流程不是很清楚,所以带着这个疑问继续深入学习,终于...

    董可伦
  • 旧版spark(1.6版本) 将rdd动态转为dataframe

    转载请务必注明原创地址为:http://dongkelun.com/2018/05/11/rdd2df/

    董可伦
  • 求一个数的临近的较大的2的整数次幂

    在改进一下,就判断他是不是2的次方先。如果是的话,可以直接返回。就可以得到这种方法。面试官又说,不能用循环递归,函数库。这下麻烦了。

    forxtz
  • golang 常见变成问题01

    往 chan 中放数据时,如果缓冲区已经满那么将 block 以下方方式可以试探往 chan 放数据

    landv
  • spark过节监控告警系统实现

    马上要过年了,大部分公司这个时候都不会再去谋求开新业务,而大数据工匠们,想要过好年,就要保证过年期间自己对自己的应用了如执掌。一般公司都会有轮值人员,至少要有春...

    Spark学习技巧
  • 【Spark Mllib】分类模型——各分类模型使用

    这个数据集源自 Kaggle 比赛,由 StumbleUpon 提供。比赛的问题涉及网页中推荐的页面是短暂(短暂存在,很快就不流行了)还是长久(长时间流行)。

    用户1621453
  • Scala基础——容器操作

    羊羽shine
  • Spark常用Transformations算子(二)

    介绍以下Transformations算子: aggregateByKey join cogroup cartesian pipe repartit...

    CoderJed
  • Spark实现排序

    question: 用spark对数据进行排序,首先按照颜值的从高到低进行排序,如果颜值相等,在根据年龄的升序排序

    曼路

扫码关注云+社区

领取腾讯云代金券