2013-07-04 20 views
8

Bir süreyi (saniyeler içinde) bir zaman olarak biçimlendirmeye çalışıyorum ve bir noktada bir dönemi dikkate almam gerektiğini belirten sonuçlar alıyorum. "00:00:00" üretmek için os.date("%X", 0) bekleniyor, ancak "20:00:00" dönüyor ve "12/31/69" (bir takvim tarihine ihtiyacım yok).Lua'yı 0 saniye olarak 00:00 00 olarak biçimlendirmek için

Bir toplam süre sıfırını temsil eden bir saat üretmek için 0 saniye süren bir zaman süresi dizesi almanın standart bir yolu var mı? Yapmaya çalıştığım şeyin bir örneğini göremiyorum.

Teşekkür

Lua geniş standart kütüphane yok

cevap

16

, os.date("%X",0) size 00:00:00 olan devrinin zaman verir (Koordineli Evrensel Zaman, UTC), 1 Ocak 1970. Farklı bir saat dilimindesiniz, 20:00:00 olsun.

Saat diliminiz yerine UTC'yi zorlamak için, biçimi ! ile başlatın. Bu, manual'da belirtilmiştir.

00:00:00 isteğinize göre os.date("!%X",0) kullanın. Bir günden daha az saniye ile çalışacaktır (86400). Örneğin, os.date("!%X",70), 00:01:10: 1 dakika ve 10 saniye verir.

5

: Çoğu sistemlerde (yani POSIX) olarak

string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60) 
+2

Bu, işlem sırasını düzelttikten sonra iyi çalışır: s/(60 * 60) – Patillac

+0

Evet, üzgünüm, test etmedim. Ayrıca dakikadaki modülü kaçırdım. – mxcl

+2

'os.date' yapabilir. Cevabımı gör. – lhf