Esta data é "apenas" o início do horário de verão! Não existe meia-noite do dia 19 de Outubro de 2014 no Brasil, o relógio muda de 23:59:59 direto para 01:00:00. O comportamento do DateTime é polêmico nesse caso pois a documentação sugere que "Date" e "Time" serão tratados como duas partes relativamente independentes. Só que não é assim que funciona: se você omitir a parte do "Time", 00:00:00 será usado por default, o que tem implicações esquisitas. Infelizmente, meia-noite não é a única excessão, em alguns períodos/timezones a hora "pula" de 1am para 2am ou mesmo 2am para 3am. Empiricamente, assume-se que meio-dia é uma hora default segura para inicializar o objeto DateTime. E a documentação, fala disso? Não! Olha, DateTime é espetacular de tão útil, mas precisa conhecer bem para não dar o tiro no próprio pé. Ou, sei lá, para o tiro só pegar de raspão.
2014-03-01 20:04 GMT+01:00 Tiago Peczenyj <tiago.pecze...@gmail.com>: > vai ver que essa data, a 00:00:00, tem alguma peculiaridade. > > será? Eu estou do lado do DateTime. E vc? > > > 2014-03-01 15:35 GMT-03:00 Stanislaw Pusep <creakt...@gmail.com>: > > ORLY??? >> >> $ perl -MDateTime -le 'DateTime->new(year => 2014, month => 10, day => >> 19, time_zone => "America/Sao_Paulo"); print "OK"' >> Invalid local time for date in time zone: America/Sao_Paulo >> >> Where's your God now? >> >> >> 2014-03-01 18:52 GMT+01:00 Tiago Peczenyj <tiago.pecze...@gmail.com>: >> >> Use DateTime. É bom >>> Em 01/03/2014 14:04, "Geraldo Netto" <geraldone...@gmail.com> escreveu: >>> >>> Opa! >>>> >>>> Ehehehhe!!! >>>> >>>> Devo admitir aqui que a maior parte do desenvolvimento que eu faço é >>>> feito em java >>>> Além disso, a última vez que eu tinha feito alguma coisa em perl foi >>>> em 2006 quando o Fernando Correa da RIO-PM trabalhava em SP >>>> e tinha me ajudado a fazer um front-end em perl-tk p/ aumentar e >>>> diminuir o volume do audio no linux >>>> >>>> BTW, foi lá que eu também conheci o Blabos e depois, em alguns >>>> encontros sociais, o Solli :P >>>> >>>> >>>> See Ya!!! >>>> >>>> Geraldo Netto >>>> Sapere Aude => Non dvcor, dvco >>>> São Paulo, Brasil, -3gmt >>>> site: http://exdev.sf.net/ >>>> >>>> 2014-03-01 12:18 GMT-03:00 Daniel Vinciguerra < >>>> dan.vincigue...@gmail.com>: >>>> > herman++ >>>> > >>>> > Caiu em desuso após o PBP "definir" como um bom padrão nomes de sub >>>> todo >>>> > maiúsculo ou todo minusculo... mas o perlcritic só pega no nível de >>>> > severidade --brutal >>>> > >>>> > (eu particularmente uso e gosto porque, IMHO, deixa muito mais fácil a >>>> > leitura) >>>> > >>>> > []'s >>>> > >>>> > >>>> > >>>> > Daniel Vinciguerra >>>> > Web Solutions Architect and Co-Owner at Bivee >>>> > http://github.com/dvinciguerra >>>> > >>>> > >>>> > 2014-02-28 21:28 GMT-03:00 Hernan Lopes <hernanlo...@gmail.com>: >>>> > >>>> >> nossa, um camel case! >>>> >> CamelCase anda tão fora de moda que me deixa surpreso ao ver que >>>> pessoas >>>> >> ainda o preferem ao invés de under_line >>>> >> >>>> >> >>>> >> >>>> >> 2014-02-28 11:59 GMT-03:00 Geraldo Netto <geraldone...@gmail.com>: >>>> >> >>>> >>> Bom Dia Pessoal! >>>> >>> >>>> >>> Consegui evoluir no código com a api do posix mesmo >>>> >>> crio as datas com POSIX::strftime >>>> >>> e calculo o horário de verão pegando a saida do comando cal no shell >>>> >>> >>>> >>> yep, eu sei que é feito, mas resolve o meu problema de um jeito >>>> rápido... >>>> >>> por hora, a idéia é só gerar o "okay" da gerencia p/ matar umas 4 >>>> >>> versões shell que fazem o mesmo trabalho, mas precisam de alguns >>>> >>> parâmetros diferentes e alguma intervenção humana especificamente no >>>> >>> período de horário de verão >>>> >>> >>>> >>> a minha dúvida é primária, suponho... >>>> >>> mas eu não entendi o porque usar o shift >>>> >>> se eu posso verificar com o defined() se o @_[<número>] está >>>> definido? >>>> >>> >>>> >>> Aceito sugestões e Mais uma vez, Valeu mesmo pela força! :P >>>> >>> >>>> >>> >>>> >>> BTW, código todo a seguir: >>>> >>> >>>> >>> #!/usr/bin/perl >>>> >>> >>>> >>> use strict; >>>> >>> use warnings; >>>> >>> >>>> >>> use POSIX; >>>> >>> >>>> >>> >>>> >>> # a inicia a data em 1900 entao, se for passado 95 => 1995 >>>> >>> sub calcularDeslocamentoAno { >>>> >>> die "ano invalido" unless defined(@_[0]) && return ($_[0] > 99 ? >>>> >>> $_[0] - 1900 : $_[0]); >>>> >>> } >>>> >>> >>>> >>> sub criarData { >>>> >>> die "parametros invalidos" unless (defined(@_[0]) && >>>> >>> defined(@_[1]) && defined(@_[2])); >>>> >>> #Usage: POSIX::strftime(fmt, sec, min, hour, mday, >>>> >>> mon, year, wday = -1, yday = -1, isdst = -1) >>>> >>> return POSIX::strftime("%Y,%m,%d", 0, 0, 0, @_[0], (@_[1] -1), >>>> >>> &calcularDeslocamentoAno(@_[2]), 0, 0); >>>> >>> } >>>> >>> >>>> >>> sub calcularDiaInicioHorarioVerao { >>>> >>> my $dia_inicio = `cal 10 2013 | tail -4 | head -1 | cut -d' ' >>>> -f7`; >>>> >>> } >>>> >>> >>>> >>> sub calcularDiaFimHorarioVerao { >>>> >>> my $dia_fim = `cal 2 2014 | tail -4 | head -1 | cut -d' ' -f7`; >>>> >>> } >>>> >>> >>>> >>> sub trim { >>>> >>> my $s = shift; >>>> >>> $s =~ s/^\s+|\s+$//g; >>>> >>> return $s; >>>> >>> } >>>> >>> >>>> >>> print &criarData(2, 5, 2014); >>>> >>> print &trim($dia_inicio); >>>> >>> print &trim($dia_fim); >>>> >>> >>>> >>> Geraldo Netto >>>> >>> Sapere Aude => Non dvcor, dvco >>>> >>> São Paulo, Brasil, -3gmt >>>> >>> site: http://exdev.sf.net/ >>>> >>> >>>> >>> 2014-02-26 23:41 GMT-03:00 Geraldo Netto <geraldone...@gmail.com>: >>>> >>> > Opa! >>>> >>> > >>>> >>> > Tudo okay Pessoal? >>>> >>> > >>>> >>> > Eu sou o Geraldo, um ghost reader da SPPM (e algumas outras PMs) >>>> >>> > e eu ando trabalhando vagarosamente num projetinho >>>> >>> > que eu dependo de verificação do horário de verão >>>> >>> > >>>> >>> > A idéia é separar o ano em 3 partes: >>>> >>> > >>>> >>> > fim do horário de verão (terceiro domingo de fevereiro) >>>> >>> > fora do horário de verão >>>> >>> > início do horário de verão (terceiro sábado de fevereiro) >>>> >>> > >>>> >>> > E baseado nisso, lançar um shell que vai receber o timezone, data >>>> de >>>> >>> > início e de fim >>>> >>> > p/ fazer a coleta de dados pelo hp openview (comando ovpmbatch) >>>> >>> > >>>> >>> > Só que... >>>> >>> > -eu tenho um servidor tru64 (sem suporte) >>>> >>> > -rodando perl 5.8 (2002 pelo o que o version diz...) >>>> >>> > -sem sudo/root/possibilidade de instalação de pacotes de terceiros >>>> >>> > -<inclua-aqui-todas-as-limitações-que-vocês-imaginarem-de-infra> >>>> >>> > -meu "core business" é análise de desempenho de software, >>>> >>> > então o código não pode ser muito "perlish" >>>> >>> > porque alguém pode precisar dar manutenção depois de mim >>>> >>> > >>>> >>> > Embora eu ainda não tenha código real (só comecei a brincar) >>>> >>> > Eu estou pensando em ir com a api do posix, especificamente a >>>> >>> > função/método strftime >>>> >>> > >>>> >>> > Eventualmente vocês teriam alguma sugestão? >>>> >>> > >>>> >>> > >>>> >>> > Grande Abraço! >>>> >>> > >>>> >>> > Geraldo Netto >>>> >>> > Sapere Aude => Non dvcor, dvco >>>> >>> > São Paulo, Brasil, -3gmt >>>> >>> > site: http://exdev.sf.net/ >>>> >>> =begin disclaimer >>>> >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> >>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> >>> =end disclaimer >>>> >> >>>> >> >>>> >> >>>> >> =begin disclaimer >>>> >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> >> =end disclaimer >>>> >> >>>> > >>>> > >>>> > =begin disclaimer >>>> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> > =end disclaimer >>>> > >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer