date - 添加秒和纪元以获得日期时间
问题描述
初学者在这里,尝试将整数数组(意味着秒)添加到 Epochs 数组中:
样本输入:
AddSeconds = [3,4]
TimeEpoch = [1575165652000, 1576424223000] // Which are 2019-12-01 02:00:52 and 2019-12-15 15:37:03
期望的输出:
endDate = [2019-12-01 02:00:55, 2019-12-15 15:37:07]
- 我需要将 TimeEpoch 转换为“yyyy-MM-dd hh:mm:ss”格式的日期
- 我需要将“AddSeconds”添加到获得的日期
谢谢!
解决方案
您可以这样做(我将您的变量更改为以小写字母开头,因为 Groovy 猜测大写字母变量实际上是类名,因此会引起混淆):
addSeconds = [3,4]
timeEpoch = [1575165652000, 1576424223000]
import java.time.*
import java.time.format.*
def formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")
def datesAsStrings = [addSeconds, timeEpoch]
.transpose()
.collect { a, t -> Instant.ofEpochMilli(t).plusSeconds(a).atZone(ZoneId.systemDefault()).toLocalDateTime() }
.collect { d -> d.format(formatter) }
datesAsStrings.each { println it }
这需要您的两个列表,并将它们与transpose()
:
[ [3, 1575165652000], [4, 1576424223000] ]
然后对于其中的每一个,我们创建一个瞬间,添加秒数,并使用当前系统时区将其转换为 LocalDateTime -- 您需要考虑时区
然后我们将它们转换为您想要的字符串格式,并将它们中的每一个都删除
推荐阅读
- python - 在 Raspbian Buster 上的 Raspberry Pi 4 上使用带有 wakeonlan 的 Python 脚本时出现权限错误
- laravel - laravel 7 中的可选 hasOne 用于关系混乱不起作用
- docker - 如何从 Azure Data Studio 与 Docker 中托管的 SQL Server 2019 容器进行通信
- javascript - 在 vuejs 中找不到这些依赖项
- ssl - 无法启动 Kestrel
- python - 使用 Streamlit 的多项 Logistic 回归
- flutter - 当父小部件给出不同的值时如何重新初始化?
- discord - avatarURL 对用户有一个奇怪的问题
- python - Selenium 入门
- java - java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.apt.dispatch.BaseProcessingEnvImpl 在 Eclipse 中使用注释处理器