Groovy无法正确地将秒转换为小时

6qftjkof  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(242)

我有一个整数:19045800
我尝试了不同的代码:

def c = Calendar.instance
c.clear()
c.set(Calendar.SECOND, 19045800)
echo  c.format('HH:mm:ss').toString()
String timestamp = new GregorianCalendar( 0, 0, 0, 0, 0, 19045800, 0 ).time.format( 'HH:mm:ss' )
echo timestamp

两者均返回10:30:00
19045800秒应该超过5000小时,我做错了什么?

j2datikz

j2datikz1#

您尝试使用Calendar,但实际上讨论的是Java所称的Duration-以特定度量单位表示的时间长度。

import java.time.*

def dur = Duration.ofSeconds(19045800)

def hours = dur.toHours()
def minutes = dur.minusHours(hours).toMinutes()
def seconds = dur.minusHours(hours).minusMinutes(minutes).toSeconds()

println "hours = ${hours}"
println "minutes = ${minutes}"
println "seconds = ${seconds}"

印刷品:

hours = 5290
minutes = 30
seconds = 0

相关问题