Как получить 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
Другие вопросы по тегам