Jump to content

The offset from GMT-UTC in standard format

Recommended Posts

The script shows the offset from GMT-UTC in standard format through string manipulation.

#include <Date.au3>

ConsoleWrite (_TimeZoneInfo() & @CRLF)

Func _TimeZoneInfo()
    $aInfo = _Date_Time_GetTimeZoneInformation()
    ConsoleWrite("bias: " & $aInfo[1] & @CRLF)
    $hours = $aInfo[1] / 60
    If $hours = "0" Then
        $hours = "+00:00"
        If StringInStr($hours, "-") Then
            $hours = StringReplace($hours, "-", "+")
            $hours = "-" & $hours
        If Not StringInStr($hours, ".") Then $hours = $hours & ":00"
        $hours = StringReplace($hours, ".5", ":30")
        $hours = StringReplace($hours, ".75", ":45")
        If StringLen($hours) = 5 Then $hours = StringLeft($hours, 1) & "0" & StringRight($hours, 4)
    Return ($aInfo[2] & " (GMT" & $hours & ")")
EndFunc   ;==>_TimeZoneInfo


Edited by masvil
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By rudi
      to retrieve the "MILLISECONDS" as well I modified some lines from "DATE.AU3".
      It's working fine, except that the function seems to return the UTC time stamp of the file checked?
      _NowCalc is returning local time (DST is active right now), so a direct "Age Check" against _NowCalc() is not possible.
      What's the best / safest approach to convert either UTC to "current local time incuding DST" or vice versa? _Date_Time_GetTimeZoneInformation() ???
      #include-once #include <Date.au3> $File="C:\temp\TimeTest.txt" $f=FileOpen($File,2+8) FileWriteLine($f,_NowCalc()) FileClose($f) _NowCalc() $Content=FileRead($File) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Content = ' & $Content & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console $TS=FileGetTSstringLastModifiedWithMS($File) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $TS = ' & $TS & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console Func FileGetTSstringLastModifiedWithMS($_FullFilePathName) $h = _WinAPI_CreateFile($_FullFilePathName, 2, 2) $aTS = _Date_Time_GetFileTime($h) _WinAPI_CloseHandle($h) $aDate = _Date_Time_FileTimeToArray($aTS[2]) If IsArray($aDate) and UBound($aDate) > 6 Then Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d.%03d", $aDate[2], $aDate[0], $aDate[1], $aDate[3], $aDate[4], $aDate[5], $aDate[6]) Else SetError(1) Return EndIf EndFunc ;==>FileGetTSstringLastModifiedWithMS  
      _FileGetTime() is not an option, as I need the milliseconds as well, as files may show up within the same second.
      <edit> It would be preferred to have a robust solution to use "local time", taking care of DST</edit>
      Regards, Rudi.
    • By au3leecher
      Hellow everybody,
      I tryed to manipulate a game called "Assault Cube" which is a easy beginning in coding. I run the code but the wished value doesn't change, i don't understand why.
      The Pointers are fine, I checked that the pointers don't change every time while restart the game.
      My Code:
      The Offsets are 18C & 4
      In Cheat Engine: ("ac_client.exe"+0010F418) <- Pointer
      4 Bytes = 'dword'
    • By zbatev
      Hi Gurus,

      can you please give me a kick off on how to achieve this.

      my PC is already in Eastern Standard Time and I want to create an AutoIt application that can display time representing different time zones of the USA.

      Maybe I could simply deduct 1 hour each moving from East coast to the West, but my concern is I want to make it as accurate as possible, so simply deducting 1 hour won't do the trick.

      Thanks much

  • Create New...