在Groovy中将秒整数格式化为时间
我有一个以秒为单位的变量,比如在Groovy中将秒整数格式化为时间,groovy,Groovy,我有一个以秒为单位的变量,比如990,它是16分30秒。如何在Groovy中将其转换为时间00:16:30 同样,如何将其转换为其他方式?给您: def c = Calendar.instance c.clear() c.set(Calendar.SECOND, 990) assert c.format('HH:mm:ss') == '00:16:30' 我想在纯groovy中可以做得更聪明一点;) 同样,整个解决方案: Calendar.instance.with { clear(
990
,它是16分30秒。如何在Groovy中将其转换为时间00:16:30
同样,如何将其转换为其他方式?给您:
def c = Calendar.instance
c.clear()
c.set(Calendar.SECOND, 990)
assert c.format('HH:mm:ss') == '00:16:30'
我想在纯groovy中可以做得更聪明一点;)
同样,整个解决方案:
Calendar.instance.with {
clear()
set(Calendar.SECOND, 990)
assert format('HH:mm:ss') == '00:16:30'
def time = '00:16:30'.split(':')*.toInteger()
clear()
set(Calendar.MINUTE, time[1])
set(Calendar.SECOND, time[2])
assert (timeInMillis - Date.parse('HH:mm:ss', '00:00:00').time)/1000 == 990
}
看看下面这个小动物。Groovy和一些计算。不幸的是,它看起来并不聪明;) 从持续时间到秒:
long seconds = ( Date.parse( 'HH:mm:ss', '00:16:30' ).time -
Date.parse( 'HH:mm:ss', '00:00:00' ).time ) / 1000
我不太熟悉
assert
如何将此计算存储回变量?更新答案。将时间戳转换为秒的第二种方法可以移动到一种使其更干燥的方法。我只是想展示一下要点。我几乎没有深入到这门语言中去,在这一点上保持干爽是我无法理解的。hahahaused Groovyassert
显示expected==actual。没问题,慢慢来,保持Groovy状态这可以通过使用和
稍微优化一下Calendar.instance.with{clear();set(Calendar.SECOND,990);format('HH:mm:ss')}
我没有注意到它!;]谢谢你的提示!我喜欢你提供的线索!这是非常挑剔的-但是在你的中,你不需要指定日历.秒
或任何其他字段,只要秒
或分钟
等。
String timestamp =
new GregorianCalendar( 0, 0, 0, 0, 0, 990, 0 ).time.format( 'HH:mm:ss' )
long seconds = ( Date.parse( 'HH:mm:ss', '00:16:30' ).time -
Date.parse( 'HH:mm:ss', '00:00:00' ).time ) / 1000