Olá!
JoséQuintas escreveu:Aquela função do Harbour com fuso horário que mostrou
Está correta, ou depende de atualização no Harbour?
Não sei a qual função se refere... seria alguma destas abaixo?
// hbmk2 teste hbtip.hbc
#include "set.ch"
PROCEDURE Main()
CLS
Set( _SET_DATEFORMAT, "dd/mm/yyyy" )
? "hb_TSToStr() ", hb_TSToStr( hb_DateTime())
? "hb_TSToUTC() ", hb_TSToUTC( hb_DateTime() )
? "UTCTime() ", UTCTime()
? "TimeZoneStr() ", TimeZoneStr()
? "DateTimeZoneStr() ", DateTimeZoneStr()
? "XMLTimeStamp() ", XMLTimeStamp()
SetPos( Row() + 10, Col() )
__Wait( "Tecle algo..." )
RETURN
//------------------------------------------------------------------------------
FUNCTION UTCTime( dtDateTime )
dtDateTime := IF( Empty( dtDateTime ), hb_DateTime(), dtDateTime )
RETURN hb_NtoT( ( hb_TtoN( dtDateTime ) * 86400 - hb_UtcOffset() ) / 86400 )
//------------------------------------------------------------------------------
FUNCTION TimeZoneStr( dtDateTime )
// hbmk2 hbtip.hbc ...
dtDateTime := IF( Empty( dtDateTime ), hb_DateTime(), dtDateTime )
RETURN( Transform( Right( tip_TimeStamp( dtDateTime ), 5 ), "@R X99:99" ) )
//------------------------------------------------------------------------------
FUNCTION DateTimeZoneStr( dtDateTime )
dtDateTime := IF( Empty( dtDateTime ), hb_DateTime(), dtDateTime )
RETURN ( Stuff( hb_TsToStr( dtDateTime ), 20, 4, " UTC " + TimeZoneStr( dtDateTime ) ) )
//------------------------------------------------------------------------------
FUNCTION XMLTimeStamp( dtDateTime )
dtDateTime := IF( Empty( dtDateTime ), hb_DateTime(), dtDateTime )
RETURN Stuff( hb_TsToStr( dtDateTime ), 11, 1, "T" )
//------------------------------------------------------------------------------
Referências:
Como sincronizar o relógio do Windows com o servidor de horário ntp.brUTC – The World's Time StandardUTCTimeZoneGMT