Linux dátum kezelés

Fórumok

volt egy érdekes problémám (ami lehet, hogy nem is probléma, de egy újszülöttnek...) :

~$ date
2006. már. 31., péntek, 07.44.35 CEST
~$

~$ date --date '1 months ago'
2006. már. 3., péntek, 07.44.48 CET
~$

Vajh miért ezt hozza? Úgy számolná ki hogy az előző hónap napjainak számát vonja ki a mai dátumból? Én arra gondoltam, hogy azért múlt hónapi dátumot ad eredményül. :) (Bár lehet, hogy rosszul gondoltam... ;) )

Hozzászólások

hmm.. ha jobban megnézed a két dátum között kerek 4 hét van. nálam ugyan nem default, hogy egy hónap 4 hét, de valamilyen szinten érthető. gondolom ez lehet a válasz a miértre.

RTFM

info coreutils date:

   The fuzz in units can cause problems with relative items.  For
example, `2003-07-31 -1 month' might evaluate to 2003-07-01, because
2003-06-31 is an invalid date.  To determine the previous month more
reliably, you can ask for the month before the 15th of the current
month.  For example:

     $ date -R
     Thu, 31 Jul 2003 13:02:39 -0700
     $ date --date="-1 month" +'Last month was %B?'
     Last month was July?
     $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
     Last month was June!

   Also, take care when manipulating dates around clock changes such as
daylight saving leaps.  In a few cases these have added or subtracted
as much as 24 hours from the clock, so it is often wise to adopt
universal time by setting the `TZ' environment variable to `UTC0'
before embarking on calendrical calculations.

Zsiraf

p.s.: mint ahogy lentebb mondtak amugy nem 4 het

Az előző hónap nem 28 napos volt?
Ha a 29, 30, 31-et hozzáveszed, akkor már márc.3 -at ad nem?
--
Intel Pentium 4 1.8GHz, 512 MB ram, 2.6.16.1-cvk-dell