# uname -a

Linux myfed 5.6.6-300.fc32.x86_64 #1 SMP Tue Apr 21 13:44:19 UTC 2020 x86_64 
x86_64 x86_64 GNU/Linux # date -R Thu, 29 Jun 2023 00:56:04 -0700

# cat test3.nim

import times

proc laTzInfo(time: Time): ZonedTime =
    ZonedTime(utcOffset: 25200, isDst: false, time: time)

let laZone = newTimezone("America/Los_Angeles", laTzInfo, laTzInfo)

proc bjTzInfo(time: Time): ZonedTime =
    ZonedTime(utcOffset: -28800, isDst: false, time: time)

let bjZone = newTimezone("Asia/Shanghai", bjTzInfo, bjTzInfo)

echo parseTime("2023-06-29 15:27:12", "yyyy-MM-dd HH:mm:ss", bjZone) # 
2023-06-29T08:27:12-07:00 echo parseTime("2023-06-29 15:27:12 +08:00", 
"yyyy-MM-dd HH:mm:ss zzz", bjZone) # 2023-06-29T00:27:12-07:00 echo 
parseTime("2023-06-29 15:27:12 +08:00", "yyyy-MM-dd HH:mm:ss zzz", laZone) # 
2023-06-29T00:27:12-07:00 echo parseTime("2023-06-29 15:27:12 +08:00", 
"yyyy-MM-dd HH:mm:ss zzz", utc()) # 2023-06-29T00:27:12-07:00

The First: parseTime("2023-06-29 15:27:12", "yyyy-MM-dd HH:mm:ss", bjZone) nim 
think the default is UTC? but the definition bjZone will be meaningless.

The last three: parseTime("2023-06-29 15:27:12 +08:00", "yyyy-MM-dd HH:mm:ss 
zzz", bjZone) parseTime("2023-06-29 15:27:12 +08:00", "yyyy-MM-dd HH:mm:ss 
zzz", laZone) parseTime("2023-06-29 15:27:12 +08:00", "yyyy-MM-dd HH:mm:ss 
zzz", utc()) result is the same: 2023-06-29T00:27:12-07:00 , the different 
definition: bjZone laZone utc(), does it make sense? 

Reply via email to