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: 2820
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP
Curtiu: 2 vezes

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: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 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: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 2820
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP
Curtiu: 2 vezes

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: 1912
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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 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