Transformation de date sous linux
Castor
Messages postés
17881
Date d'inscription
Statut
Modérateur
Dernière intervention
-
Castor Messages postés 17881 Date d'inscription Statut Modérateur Dernière intervention -
Castor Messages postés 17881 Date d'inscription Statut Modérateur Dernière intervention -
Salutatous....
mon probleme est le suivant... g des logs a nalyser, et les dates me sortent sous le format GNU, cad en decompte de secondes depuis le 01/01/1970 à 00h00
est ce que quelqu'un aurait un soft ou une ligne de commande permettant de transformer par exemple 1033570316 en 02/10/2002 16:51:56 ?????
merchi d'avance ;)
.O
(_)__... Castor
mon probleme est le suivant... g des logs a nalyser, et les dates me sortent sous le format GNU, cad en decompte de secondes depuis le 01/01/1970 à 00h00
est ce que quelqu'un aurait un soft ou une ligne de commande permettant de transformer par exemple 1033570316 en 02/10/2002 16:51:56 ?????
merchi d'avance ;)
.O
(_)__... Castor
11 réponses
-
Ptain t es dans la merde....
Bon regarde quand meme si le gars qui fait les logs ne peut pas changer ce format.
sinon avec la comande date +%s et la crontab tu peux peut etre faire un script qui ne soit pas trop penalisant ?
m enfin bon..
good luck -
-
bah les logs c des logs "natifs" de squid
et meme si maintenant on les modifie pour ca, il reste qd meme mes 300 000 lignes de logs deja existantes a modifier :D
vi c pas bete le perl... tu penses qu'ily a une commande qui transforme tout ca?? ou fo se taper ca a la barbare :D
en tout cas merci sysdamin :p
.O
(_)__... Castor -
un petit cout de system call gettimeofday et c'est fait.
En perl tu utilises les services time et localtime
En vrac, je te file du code que j'ai pondu pour ajouter ou soustraire un nombre J de jours à la date courante, sous windows 98 avec des petits offsets pour corriger les différences avec unix. Si toi tu cueille un chiffre, tu pars de là au lieu de time qui donne le chiffre du temps présent...
if ($J =~ /^[-]*[0-9]+$/) {
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time + 3600*24*$J);
$mon++;
$When=&Str_date();
};
sub Str_date {
#----------------
local($Year);
if ($year<100) { $Year=($year>=70)?1900+$year:2000+$year;}
elsif ($year<1900) {$Year=$year+1900;} # Emm v 2.6
else {$Year=$year;};
$_=sprintf ("%s%d/%s%d/%4s",
($mday<10)?"0":"",$mday, ($mon<10)?"0":"",$mon,$Year);
if ($Year<1996 || $Year >2070 || $mon>12 || $mday >31) {
die ("Le $_ ! Petit farceur, va !\n");
};
$_;
}
:,§_ ç _
(@)=(@) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Sorry pour les fautes, lis coup et cueilles, c'est parti trop vite, pardon!
-
En Python... tu cr?es la proc?dure idoine....
#! /usr/bin/python
import time
t = 1033570316
try:
d = time.gmtime(t)
print "%02d/%02d/%d %02d:%02d:%02d" % (d[2], d[1], d[0], d[3], d[4], d[5])
except(e):
pass
The software said "Requires Windows98, Win2000, or better
So I installed Unix. -
Il faut ?videmment placer les tabulations correctes...
En Python... tu cr?es la proc?dure idoine....
#! /usr/bin/python
import time
t = 1033570316
try:
___d = time.gmtime(t)
___print "%02d/%02d/%d %02d:%02d:%02d" % (d[2], d[1], d[0], d[3], d[4], d[5])
except(e):
___pass
The software said "Requires Windows98, Win2000, or better
So I installed Unix. -
ok merci les gars.. je tenterai ca demain....
(sous perl pk g dja tout le script en perl) mais merci aussi jisiv, g archive ca :p
oui M&M's en effet je "pars" du chiffre..
.O
(_)__... Castor -
Ha Castor, tu vois que j'ai codé cela à la mise-t-en-flute avec des variables year, mon, mday globales alors que j'aurais du créer un joli array à passr par référence à la fonction, tu peux fignoler... En tout cas, mon truc tourne en opération tous les jours.
:,§_ ç _
(@)=(@) -
mouarf tinkiete...mon script ferait fuir un codeur de chez microsoft, c pour te dire :-DDD
.O
(_)__... Castor -
oki M&M's g recup ton script et adapte rapidement... encore merci pour ton aide...
au passage, je redirige ce post vers programmation (commme un ane je me suis plante de forum :p)
.O
(_)__... Castor