Как получить timezone_offset с помощью Lua
Get-TimeZone | Select BaseUtcOffset
выше - запрос оболочки питания, который возвращает значение BaseUtcOffset
BaseUtcOffset
05:30:00
-> В скрипте lua я хотел сохранить это значение в переменной.
Здесь я использовал PowerShell.
Пожалуйста, помогите мне каким-то образом получить это значение, используя любую встроенную функцию в lua, или пользовательскую написанную функцию в lua, или выполнив команду powershell из lua. Я хотел сохранить значение часового пояса в переменной lua для дальнейшего использования.
2 ответа
Я не уверен, что вам нужно или каков вывод BaseUtcOffset, но попробуйте этот код:
t=os.date("*t")
t.hour=0
t.min=0
t.sec=0
print(os.date("!%T",os.time(t)))
Важным моментом здесь является использование
!
в строке формата, чтобы получить дату в формате UTC.
(Я не уверен, что это работает для мест к востоку от UTC. (
-----------------------------------------------------------------
-- Compute the difference in seconds between local time and UTC.
-----------------------------------------------------------------
function get_timezone_diff_seconds()
local now = os.time()
return os.difftime(now, os.time(os.date("!*t", now)))
end
------------------------------------------------------------------------------------
-- TIMEZONE OFFSET. Eg: UTC-08:00
-- Return a timezone string in ISO 8601:2000 standard form (UTC+hh:mm or UTC-hh:mm)
------------------------------------------------------------------------------------
function get_timezone_offset()
local timezone_diff_seconds = get_timezone_diff_seconds()
local h, m = math.modf(timezone_diff_seconds / 3600)
local timezone_offset = ""
if(timezone_diff_seconds > 0) then
-- prefixed with '+' sign
timezone_offset = string.format("UTC%+.2d:%.2d", h, math.abs(60 * m))
else
if(h == 0) then
-- prefixed with '-' sign
timezone_offset = string.format("UTC-%.2d:%.2d", h, math.abs(60 * m))
else
-- here h will be in negative number, so '-' sign is prefixed by h
timezone_offset = string.format("UTC%.2d:%.2d", h, math.abs(60 * m))
end
end
return timezone_offset
end