OVH Cloud OVH Cloud

temps gmt d'un fichier

4 réponses
Avatar
Sibou51
Bonjour =E0 tous,

Contexte:
J'ai fait un outil de validation de sp=E9cification pour le
d=E9veloppement d'un logiciel. Cet outil compare des publication ( en
pdf ) par le titre et avec XSL, elles sont affich=E9s modifi=E9s si elles
ont chang=E9s. Le titre de la publication est: date_nomProjet.pdf.

En fin de semaine ( Quebec Canada), l'heure a chang=E9 et lors de la
mise a jour de mon outil, toutes les publications ont =E9t=E9 affich=E9
comme modifi=E9, ce qui n'est pas le cas.

Je sais que os. path.getmtime( $path ) me donne l'heure de modification
du fichier mais celui ci est en heure local, mais elle ne tient pas
compte des changement d'heure.
Juste pour des tests je m'amuse =E0 changer l'heure de ma machine et
l'heure de la derniere modification ( windows ) change.

Question:

je voudrais savoir s'il existe une fonction qui me donne l'heure de la
derni=E8re modification d'un fichier mais en heure UTC ou GMT???

Y a til une m=E9thode d'avoir un titre avec une date qui ne variera pas
en fonction de multiple changement d'heure ou de pays???


merci

4 réponses

Avatar
Méta-MCI
Bonsoir !

Je ne sais si ça répondra à ton besoin, mais les deux scripts ci-dessous
affichent :
- le 1er, l'heure UTC de l'ordinateur
- le 2e, l'heure locale de l'ordinateur
Il est alors possible de calculer la différence entre les deux.

@+

MCI




import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"rootcimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_UTCTime")
for objItem in colItems:
print "Day: ", objItem.Day
print "Day Of Week: ", objItem.DayOfWeek
print "Hour: ", objItem.Hour
print "Milliseconds: ", objItem.Milliseconds
print "Minute: ", objItem.Minute
print "Month: ", objItem.Month
print "Quarter: ", objItem.Quarter
print "Second: ", objItem.Second
print "Week In Month: ", objItem.WeekInMonth
print "Year: ", objItem.Year





import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"rootcimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_LocalTime")
for objItem in colItems:
print "Day: ", objItem.Day
print "Day Of Week: ", objItem.DayOfWeek
print "Hour: ", objItem.Hour
print "Milliseconds: ", objItem.Milliseconds
print "Minute: ", objItem.Minute
print "Month: ", objItem.Month
print "Quarter: ", objItem.Quarter
print "Second: ", objItem.Second
print "Week In Month: ", objItem.WeekInMonth
print "Year: ", objItem.Year
Avatar
Jonathan Barnoud
Bonsoir !

Je ne sais si ça répondra à ton besoin, mais les deux scripts ci-dessous
affichent :
- le 1er, l'heure UTC de l'ordinateur
- le 2e, l'heure locale de l'ordinateur
Il est alors possible de calculer la différence entre les deux.

@+

MCI



[snip]

import win32com.client


[snip]

Juste pour dire que c'est possible sans win32com ...

from datetime import datetime

local = datetime.now()
utc = datetime.utcnow()

print utc.hour - local.hour
print local.hour - utc.hour
print abs(local.hour - utc.hour)

Pour plus de doc : http://docs.python.org/lib/datetime-datetime.html

Jonathan Barnoud

Avatar
Méta-MCI
Bonjour !

Pour le coup, j'ai trouvé une solution compliquée, là où il y en avait une
simple.
Ben voilà, c'est dit.

@-salutations

Michel Claveau
Avatar
Jonathan Barnoud
Bonjour à tous,

Contexte:
J'ai fait un outil de validation de spécification pour le
développement d'un logiciel. Cet outil compare des publication ( en
pdf ) par le titre et avec XSL, elles sont affichés modifiés si elles
ont changés. Le titre de la publication est: date_nomProjet.pdf.

En fin de semaine ( Quebec Canada), l'heure a changé et lors de la
mise a jour de mon outil, toutes les publications ont été affiché
comme modifié, ce qui n'est pas le cas.

Je sais que os. path.getmtime( $path ) me donne l'heure de modification
du fichier mais celui ci est en heure local, mais elle ne tient pas
compte des changement d'heure.
Juste pour des tests je m'amuse à changer l'heure de ma machine et
l'heure de la derniere modification ( windows ) change.

Question:

je voudrais savoir s'il existe une fonction qui me donne l'heure de la
dernière modification d'un fichier mais en heure UTC ou GMT???

Y a til une méthode d'avoir un titre avec une date qui ne variera pas
en fonction de multiple changement d'heure ou de pays???


merci

Re bonjour,


On peut réupérer l'heure de dernière modification d'un fichier grace à
os.stat(path).st_mtime qui retourne un timestamp que l'on peu convertir
soit en heure locale soit en heure utc grace au module datetime.

from os import stat
from datetime import datetime

path = "test.txt"
derniere_modif = stat(path).st_mtime
date_utc = datetime.utcfromtimestamp(derniere_modif)
print date_utc

Ceci résout-il vos problèmes ?

Jonathan Barnoud