Date furcsasag

Fórumok

Sziasztok,

Valakinek van erre racionalis magyarazata, vagy - amit nem tartok valoszinunek - bugot lottem?

$ date --version
date (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License .
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

$ date
Fri Oct 11 13:22:55 CEST 2013

Adjunk hozza egy masodpercet egy tetszoleges datumhoz:
$ date -d '2013-10-10 04:00 + 1 second'
Thu Oct 10 05:59:01 CEST 2013
Kivon egy percet CESTben es hozzaad egy masodpercet...

Ugyanez
$ date -d '2013-10-10 04:00:00 + 1 second'
Thu Oct 10 05:59:01 CEST 2013

Adjunk hozza egy percet:
$ date -d '2013-10-10 04:00:00 + 1 minute'
Thu Oct 10 06:00:00 CEST 2013
CESTben kiirja, de az egy percet nem adja hozza

Ugyanez
$ date -d '2013-10-10 04:00:01 + 1 minute'
Thu Oct 10 06:00:01 CEST 2013

Irjuk hozza az idozonat is:
$ date -d '2013-10-10 04:00:01 CEST + 1 minute'
Thu Oct 10 04:01:01 CEST 2013
Igy ok.

cU

Hozzászólások

helló

szerintem kicsit outdated már az a time core util,

az utolsó állítás + időzóna plussz egy perc ebben a verzióban nem okoz ilyen gondot.

$ date --version
date (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

------------------------

Nincs a világon se jó, se rossz. A gondolkodás teszi azzá... (W. Shakespeare)

$ date
Fri Oct 11 13:04:19 CEST 2013
$ date -d '2013-10-11 13:04:01 + 1 minute'
Fri Oct 11 14:05:01 CEST 2013

valóban ez a 'bug' itt is fennáll bár rákeresve a hibára több helyen is írják pl ezt fórumon pl ubuntu szekcióban:

https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/51106

illetve azt is, h. ne + jellel használd akkor nincs 'bug'.

üdv

Balooo

------------------------

Nincs a világon se jó, se rossz. A gondolkodás teszi azzá... (W. Shakespeare)

Azért ez koránt sem ugyanaz a hiba! Az egy percet hozzáadta, és teljesen jó, ha GMT/BST az alap, mivel még ott is nyári időszámítás van.
Ez alapján szerintem korrekt a válasz, bár ha mélyebben belegondolunk, UTC-vel illene számolnia, vagy a helyi időzónával.
Ám nincs egy perc mínusz, és az egy mp plusz is rendben van:

date -d '2013-10-10 04:00 + 1 second'
2013. okt. 10., csütörtök, 05.00.01 CEST
--
PtY - www.onlinedemo.hu

Szerintem végig ugyanarról a hibáról van szó.

Az a parancs, hogy
date -d '2013-10-10 04:00 + 1 second'

tévesen úgy parse-olódik be, hogy értelmezi a 4 óra 0 perc időpontot a +1 időzóna szerint, majd még utána van írva hogy "second" (szám nélkül) ami plusz 1 másodpercet jelent (nem azért mert 1-es állna előtte, azt ő már nem látja, hanem mert ez a defaultja). Ugyanez a logika akkor is, ha a szám negatív, vagy ha second helyett minute, hour stb. szerepel ott. Próbáld végig az eseteket, 1-es helyett nagyobb számmal mert akkor látványosabb hogy mi történik.

Ha meg van adva az időzóna, akkor aszerint parse-olódik be az időpont (a kiiratás pedig helyi időre konvertálva), és a teljes "+ 1 second" megmarad hozzáadandónak, így a viselkedés az amit vársz.

Ön nyert. Viszont akkor meg nincs bug! See:

$ date -d '2013-10-10 04:00 + 1 second'
2013. okt. 10., csütörtök, 05.00.01 CEST
Időzóna +1, és second +1 valóban.

$ date -d '2013-10-10 04:00 + second'
2013. okt. 10., csütörtök, 04.00.01 CEST
Ez teljesen jó.

$ date -d '2013-10-10 04:00 1 second'
2013. okt. 10., csütörtök, 04.00.01 CEST
Ez is.

$ date -d '2013-10-10 04:00 second'
2013. okt. 10., csütörtök, 04.00.01 CEST
Ez is.

$ date -d '2013-10-10 04:00 2 minute'
2013. okt. 10., csütörtök, 04.02.00 CEST
Ez is.

$ date -d '2013-10-10 04:00 + 1 2 second'
2013. okt. 10., csütörtök, 05.00.02 CEST
Időzóna +1 és 2mp plusz.

Azaz: nem kell a + jel.
--
PtY - www.onlinedemo.hu