Página 1 de 2
TimeZone
Enviado: 01 Set 2017 19:47
por Alexandre Silva
Pessoal
Alguma funcao que retorne a timezone no harbour ?
Quando chega horario de verao, pessoal que usa NFe Cte tem que indicar a time zone em varios lugares
<dhEvento>2016-10-31T09:44:20-02:00</dhEvento>
Obrigado
TimeZone
Enviado: 02 Set 2017 00:25
por Jairo Maia
Olá Alexandre,
Que estranho... Isso não é só no horário de verão e não tem nada a ver com Time
Zone... Tem que informar sempre.
Código: Selecionar todos
cDateTime := TtoC( DateTime() )
cDateTime := Left( cDateTime, RAt( ".", cDateTime ) -1 )
TimeZone
Enviado: 02 Set 2017 11:27
por Alexandre Silva
Opa
Acho que me expressei mal
Nos casos que temos que colocar a timezone, que na maior parte do Brasil se coloca é -03:00
mas quando entramos no horario de verao preciso indicar -02:00
Ocorre que esse periodo varia todo ano de outubro a fevereiro, nao quero ficar digitando esse periodo ou pedir para que seja indicado pelo usuario se esta no horario de verao..
Pensei que o Harbour, teria uma funcao que pega do sistema operacional se está ou nao em horario de verao ou se tem como pegar a timezone direto
-02:00 -03:00 -04:-00
TimeZone
Enviado: 02 Set 2017 11:46
por Itamar M. Lins Jr.
Ola!
pessoal que usa NFe Cte tem que indicar a time zone em varios lugares
Não entendi direito, mas aqui na Bahia é só desligar o horário de verão no windows mesmo.
A hora fica sempre correta, basta informar o local correto, mas isso é no OS não no aplicativo, porque o aplicativo não tem GPS "AINDA" rsrsrs.
Saudações,
Itamar M. Lins Jr.
TimeZone
Enviado: 02 Set 2017 13:25
por Alexandre Silva
No Nordeste nao entra em horario de verao
e sim.. o Windows(sistema operacional) tem controle do horario
pensei que o harbour tivesse como pegar..
TimeZone
Enviado: 02 Set 2017 14:44
por Itamar M. Lins Jr.
Pois é, só com GPS. Nem OS sabe.
Saudações,
Itamar M. Lins Jr.
TimeZone
Enviado: 02 Set 2017 15:24
por asimoes
TimeZone
Enviado: 03 Set 2017 14:48
por JoséQuintas
Veja se é isso que quer.
Procure por DateTimeXml()
https://github.com/JoseQuintas/sefazcla ... mlfunc.prg
Código: Selecionar todos
PROCEDURE Main
? DateTimeXml( Date(), Time(), "SP", .T. )
hbmk2 test sefazclass.hbc
d:\temp>test
2017-09-03T14:49:32-03:00
TimeZone
Enviado: 03 Set 2017 15:02
por JoséQuintas
Faltou mencionar: basta que o computador esteja com o horário correto.
Acaba uando as funções TercaDeCarnaval() e DomingoDePascoa(), HorarioDeVeraoInicio() e HorarioDeVeraoTermino(), mas todas estão no fonte.
TimeZone
Enviado: 03 Set 2017 16:50
por Alexandre Silva
Obrigado
Funcoes muito uteis.
TimeZone
Enviado: 04 Set 2017 09:51
por Jairo Maia
Olá Alexandre,
Alexandre Silva escreveu:se está ou nao em horario de verao ou se tem como pegar a timezone direto -02:00 -03:00 -04:-00
Ok. Acho que o único jeito é pela Consulta do Status Operacional. Veja um exemplo entre SP e AM. SP está com UTC 3 e AM UTC 4:
SP:
<retConsStatServ versao="3.10" xmlns="
http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>SP_NFE_PL_008i2</verAplic>
<cStat>107</cStat>
<xMotivo>Serviço em Operação</xMotivo>
<cUF>35</cUF>
<dhRecbto>2017-09-04T09:30:52-
03:00</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>
AM:
<retConsStatServ xmlns="
http://www.portalfiscal.inf.br/nfe" versao="3.10">
<tpAmb>2</tpAmb>
<verAplic>AM3.10-4.00</verAplic>
<cStat>107</cStat>
<xMotivo>Servico em Operacao</xMotivo>
<cUF>13</cUF>
<dhRecbto>2017-09-04T08:36:22-
04:00</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>
TimeZone
Enviado: 04 Set 2017 10:27
por Kapiaba
Código: Selecionar todos
Function TimeZone(dData)
Local cDateTimeZone,aTimeStamp,cTzd
Default dData:=Date()
aTimeStamp:=hb_atokens(tip_timestamp(dData)," ")
cTzd:=aTail(aTimeStamp)
cTzd:=Left(cTzd,Len(cTzd)-2)+":"+Right(cTzd,2)
cDateTimeZone:=StrZero(Year(dData),4)+"-"+StrZero(Month(dData),2)+"-"+StrZero(Day(dData),2)+"T"+Time()+cTzd
Return(cDateTimeZone)
abs.
TimeZone
Enviado: 04 Set 2017 10:47
por JoséQuintas
Dei uma mexida nessa rotina.
Resta saber se em horário de verão vai estar ok.
Código: Selecionar todos
PROCEDURE Main
? DateTimeXml( Date(), Time(), "SP", .T. )
? TimeZone( Date() )
RETURN
FUNCTION TimeZone( dData )
RETURN Transform( Dtos( dData ), "@R 9999-99-99" ) + ;
"T" + Time() + ;
Transform( Right( Tip_TimeStamp(), 5 ), "@R X99:99" )
d:\temp>test
2017-09-04T10:46:22-03:00
2017-09-04T10:46:22-03:00
TimeZone
Enviado: 04 Set 2017 11:03
por JoséQuintas
Precisou atualização, passar a data em Tip_TimeStamp():
Código: Selecionar todos
PROCEDURE Main
? DateTimeXml( Stod( "20170101" ), Time(), "SP", .T. )
? TimeZone( Stod( "20170101" ) )
FUNCTION TimeZone( dData )
RETURN Transform( Dtos( dData ), "@R 9999-99-99" ) + ;
"T" + Time() + ;
Transform( Right( Tip_TimeStamp( dData ), 5 ), "@R X99:99" )
2017-01-01T11:01:47-02:00
2017-01-01T11:01:47-02:00
Nota: não sei dizer se o Harbour 3.2 tem hb_TipTimeStamp()
TimeZone
Enviado: 05 Set 2017 19:54
por Itamar M. Lins Jr.
Ola!
Código: Selecionar todos
2017-09-05 10:29 UTC Viktor Szakats (vszakats users.noreply.github.com)
...
* contrib/hbtip/misc.c
! TIP_TIMESTAMP(): fix to pad the day and year with zero
Ref: https://tools.ietf.org/html/rfc2822#section-3.3
Ref: https://developer.mozilla.org/docs/Web/HTTP/Headers/Date
! TIP_TIMESTAMP(): fix out-of-bounds array access when an empty
date was passed
% halve on-stack string buffer size
* comment cleanups
* contrib/hbtip/sessid.prg
! tip_DateToGMT(): fix to convert date to GMT (UTC)
...
Teve mais ajustes em outras áreas.
Saudações,
Itamar M. Lins Jr.