TimeZone

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

TimeZone

Mensagem 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
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

TimeZone

Mensagem 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 )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

TimeZone

Mensagem 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
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TimeZone

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

TimeZone

Mensagem 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..
Anexos
hora_.JPG
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TimeZone

Mensagem por Itamar M. Lins Jr. »

Pois é, só com GPS. Nem OS sabe.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

TimeZone

Mensagem por asimoes »

Tem essa opção, já tentou?

http://ntp.br/guia-win-comum.php
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TimeZone

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TimeZone

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

TimeZone

Mensagem por Alexandre Silva »

Obrigado
Funcoes muito uteis.
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

TimeZone

Mensagem 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>
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

TimeZone

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TimeZone

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TimeZone

Mensagem 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()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TimeZone

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Responder