2016-03-29 12 views
2

Die Ausgabe von os.date("*t") hat ein isdst Feld, und Sie können es in Ihrer Eingabe für os.time angeben. Vielleicht dumm ich bin, aber ich kann es nicht sehen überhaupt von os.time verwendet:Wird das Feld isdst überhaupt von os.time() verwendet?

> print(os.time{year=2016, month=3, day=29, hour=9,min=10,sec=10,isdst=1}) 
1459235410 
> print(os.time{year=2016, month=3, day=29, hour=9,min=10,sec=10,isdst=0}) 
1459235410 
> print(os.time{year=2016, month=6, day=29, hour=9,min=10,sec=10,isdst=0}) 
1467184210 
> print(os.time{year=2016, month=6, day=29, hour=9,min=10,sec=10,isdst=1}) 
1467184210 

Sie scheinen die gleiche Epoche Zeitdarstellung unabhängig von Ihrer Spezifikation von isdst zu bekommen. Also, ist es sicher, dieses Feld zu ignorieren?

Antwort

3

Das Feld isdst ist ein boolescher Wert, keine Zahl. Beachten Sie, dass alles, was nicht false oder nil ist, als truthy betrachtet wird, einschließlich 0.

Um isdst-false gesetzt, versuchen

print(os.time{year=2016, month=6, day=29, hour=9, min=10, sec=10, isdst=false}) 

Der Standardwert für isdst Feld nil ist, so funktioniert dies auch:

print(os.time{year=2016, month=6, day=29, hour=9, min=10, sec=10}) 
+0

Das ist es! Vielen Dank! Entschuldigung, Lua ist mir zu neu, um mir Annahmen zu verwerfen, an die ich gewöhnt bin. –