java - 在scala中获取持续时间
问题描述
我有一个由 date_time 组成的变量。现在我想用 current_time 来计算 date_time 的小时数。在scala中实现这一目标的最佳方法是什么?
val create_time = "2020-08-05 10:10:10"
假设 current_time 如下:
val current_time = "2020-08-06 10:10:10"
现在我期待以小时为单位的持续时间。我可以使用 spark 数据帧来实现这一点to_timestamp()
,但想看看我们如何在 scala 中做到这一点。
val df = Seq(("2020-08-01 12:01:19"), ("2020-08-05 12:01:19"), ("2020-08-06 16:44:55"), ("2020-08-06 16:50:59")).toDF("input_timestamp")
df.withColumn("input_timestamp", to_timestamp(col("input_timestamp")))
.withColumn("current_timestamp", current_timestamp().as("current_timestamp"))
.withColumn("DiffInSeconds", current_timestamp().cast(LongType) - col("input_timestamp").cast(LongType))
.withColumn("DiffInHours",col("DiffInSeconds")/3600D)
.withColumn("DiffInDays",round(col("DiffInHours")/24)).show(false)
+-------------------+-----------------------+-------------+------------------+----------+
|input_timestamp |current_timestamp |DiffInSeconds|DiffInHours |DiffInDays|
+-------------------+-----------------------+-------------+------------------+----------+
|2020-08-01 12:01:19|2020-08-06 20:25:14.775|462235 |128.3986111111111 |5.0 |
|2020-08-05 12:01:19|2020-08-06 20:25:14.775|116635 |32.39861111111111 |1.0 |
|2020-08-06 16:44:55|2020-08-06 20:25:14.775|13219 |3.6719444444444442|0.0 |
|2020-08-06 16:50:59|2020-08-06 20:25:14.775|12855 |3.5708333333333333|0.0 |
+-------------------+-----------------------+-------------+------------------+----------+
解决方案
斯卡拉解决方案。
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit.HOURS
val start = LocalDateTime.parse("2020-08-05 10:10:10"
,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
val stop = LocalDateTime.now //current_time
val between = HOURS.between(start, stop)
//between: Long = 32
推荐阅读
- java - 有没有办法减慢 selenium 中的 firefox 执行速度?
- page-setup - 如何在.NET应用程序中制作Notepad.exe的“PageSetting”对话框?
- c# - 无法解析以供参考 Microsoft.Azure.WebJobs.Extensions - 元数据生成失败
- php - Woocommerce 中国产品属性分类的特殊编码
- java - Spring JPA 中的@Entity 是什么?
- sql - 当标签是字符串数组时,如何计算 SQL 中每个标签的项目数?
- c - 用指针交换c中的字符串函数
- python - 将列表写入文件时如何删除[]?
- react-native - Detox 成功构建但未在 Android 模拟器上安装应用程序
- r - R分配为数据框并列出