首页 > 解决方案 > 添加秒和纪元以获得日期时间

问题描述

初学者在这里,尝试将整数数组(意味着秒)添加到 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]
  1. 我需要将 TimeEpoch 转换为“yyyy-MM-dd hh:mm:ss”格式的日期
  2. 我需要将“AddSeconds”添加到获得的日期

谢谢!

标签: dategroovytime

解决方案


您可以这样做(我将您的变量更改为以小写字母开头,因为 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 -- 您需要考虑时区

然后我们将它们转换为您想要的字符串格式,并将它们中的每一个都删除


推荐阅读