← Back to team overview

sslug-teknik team mailing list archive

Re: System ur og cmos ur - y2k korrigering?

 

Frank Damgaard wrote:

>
> Alternativ sæt året til et der er skudår som 2000, og blot anvend "date"
> til at sætte ny årstal. (f.eks. 1996)
> Se på "man date" , og så noget i stil med :
>
> OLDYEAR=`date +%Y`
> REST=`date +%m%d %H%M`
> let OLDYEAR=$OLDYEAR+4
> date --set=$OLDYEAR$REST
>

Tak for svaret.  Ja, det vil gøre det, bortset fra at dagene ville ikke
passe på et tidspunkt.  Men 1972 dage passer.  Jeg har også fundet en Perl
modul som kan konvertere  til og fra epoch sekunder. Her er et eksempel
script og output, hvis andre er interesseret.

#!/usr/bin/perl -w

use Time::localtime;

print "-------------------System Commands-------------------------------\n";

$now = `date +%m%d%H%M%Y%S`;
print "Date now -in format required by- \'date --set\' : $now";
$now_in_seconds = `date +%s`;
print "Time now in epoch seconds : $now_in_seconds";
print
"------------------------------------------------------------------\n\n";
print "------------------Perl Time
Functions-----------------------------\n";
$tm = localtime($now_in_seconds);
printf("Conversion: %02d%02d%02d%02d%04d%02d\n",
       $tm->mon+1, $tm->mday, $tm->hour, $tm->min, $tm->year+1900,
       $tm->sec);
print
"-------------------------------------------------------------------\n";


[prw@localhost y2kfix]$ ./date
-------------------System Commands-------------------------------
Date now -in format required by- 'date --set' : 12281532199933
Time now in epoch seconds : 946391553
------------------------------------------------------------------

------------------Perl Time Functions-----------------------------
Conversion: 12281532199933
-------------------------------------------------------------------

mvh Peter



References