groovy 中从一个时区到另一个时区的时间转换
Conversion of time from one timezone to other in groovy
我正在尝试将时间从一个时区转换为其他时区。
最初,我有时间和时区。我想将其转换为其他时区。
例如:
时区:GMT 标准时间
开始日期时间:2020-01-15T08:30:00.000Z
现在我想将其转换为 IST 时区
代码:
def oldTimezone = context.expand('${#Project#Timezone}')
def SDT = context.expand('${#Project#StartDateTime}')
startDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(SDT)
log.info 'time : ' + startDate
def dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
dateformat.setTimeZone(TimeZone.getTimeZone(oldTimezone));
def currentTimeinUTC = dateformat.format(startDate);
log.info 'time set in first timezone : ' + currentTimeinUTC
输出
Wed Jan 15 14:43:32 IST 2020:INFO:time : Wed Jan 15 08:30:00 IST 2020
Wed Jan 15 14:56:16 IST 2020:INFO:time set in first timezone : 2020-01-15T03:00:00.000Z
如果这将 return 输出“2020-01-15T08:30:00.000Z”,那么我将以完全相同的方式将其转换为 IST。但问题是它理解原始时间是 IST 并将其转换为 UTC。
避免旧约会类,他们让一切变得困难...
解析 UTC 时间并将其转换为 IST 时间非常简单:
import java.time.*
def parsedUTCTime = ZonedDateTime.parse('2020-01-15T08:30:00.000Z')
def istTime = parsedUTCTime.withZoneSameInstant(TimeZone.getTimeZone("IST").toZoneId())
我正在尝试将时间从一个时区转换为其他时区。
最初,我有时间和时区。我想将其转换为其他时区。 例如: 时区:GMT 标准时间 开始日期时间:2020-01-15T08:30:00.000Z
现在我想将其转换为 IST 时区
代码:
def oldTimezone = context.expand('${#Project#Timezone}')
def SDT = context.expand('${#Project#StartDateTime}')
startDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(SDT)
log.info 'time : ' + startDate
def dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
dateformat.setTimeZone(TimeZone.getTimeZone(oldTimezone));
def currentTimeinUTC = dateformat.format(startDate);
log.info 'time set in first timezone : ' + currentTimeinUTC
输出
Wed Jan 15 14:43:32 IST 2020:INFO:time : Wed Jan 15 08:30:00 IST 2020
Wed Jan 15 14:56:16 IST 2020:INFO:time set in first timezone : 2020-01-15T03:00:00.000Z
如果这将 return 输出“2020-01-15T08:30:00.000Z”,那么我将以完全相同的方式将其转换为 IST。但问题是它理解原始时间是 IST 并将其转换为 UTC。
避免旧约会类,他们让一切变得困难...
解析 UTC 时间并将其转换为 IST 时间非常简单:
import java.time.*
def parsedUTCTime = ZonedDateTime.parse('2020-01-15T08:30:00.000Z')
def istTime = parsedUTCTime.withZoneSameInstant(TimeZone.getTimeZone("IST").toZoneId())