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 条评论
登录 后参与评论

相关文章

来自专栏Java后端技术栈

为什么MySQL数据库索引选择使用B+树?

在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出...

49510
来自专栏尾尾部落

[剑指offer] 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6...

17510
来自专栏项勇

笔记26 | 总结Android的获取系统时间的几种方法

21050
来自专栏小狼的世界

Aptana的破解

最近写JS比较多,常常苦恼与没有一个顺手的IDE。Editplus虽然用的熟,不过那个的效率太低而且代码看起来也很不方便,经过一个多月的试用,发现了一款好用的编...

11720
来自专栏数据结构与算法

Day2平衡树笔记

线段树不支持的操作:删除,插入 ---- 常见的平衡树 treap 慢||好写 sbt(大小平衡的树) 非常快 比较好写 ||功能不全 rbt 红黑树 特...

33060
来自专栏WD学习记录

牛客网 二叉树的深度

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

9110
来自专栏aCloudDeveloper

算法导论第十八章 B树

一、高级数据结构   本章以后到第21章(并查集)隶属于高级数据结构的内容。前面还留了两章:贪心算法和摊还分析,打算后面再来补充。之前的章节讨论的支持动态数据集...

21560
来自专栏趣学算法

数据结构 第13讲 三元组 (F、C、L/R) 序列创建二叉树

/* 输入三元组 (F、C、L/R) 序列输入一棵二叉树的诸边(其中 F 表示双亲结点的标识,C 表示孩子结点标识,L/R...

33630
来自专栏WindCoder

数据统计第一弹-按时/天/周/月补全某一段时间的数据-Java核心逻辑

本代码均结合之前的发布的DateUtil使用,之后的mysql查询部分看心情发布,就这么任性~ ~

21010
来自专栏desperate633

LintCode 二叉树中的最大路径和题目分析代码

给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)

14420

扫码关注云+社区

领取腾讯云代金券