0
votes

faire python DateTime inclure le fuseau horaire local

J'ai écrit ce code Python mais je suis confronté à des problèmes pour que cela fonctionne correctement au niveau du fuseau horaire. Donc, fondamentalement, la datetime.now () ne fonctionne pas comme prévu car elle n'est pas conforme à mon heure locale (heure locale de Paris). N'importe quelle idée comment seller cela s'il vous plaît.

from datetime import datetime, timedelta
from airflow.operators import 
GoogleCloudStorageToGoogleCloudStorageOperator
copy_trm = GoogleCloudStorageToGoogleCloudStorageOperator(
        task_id='copy_file',
        source_bucket="source",
        source_object="input-files/*.orc",
        destination_bucket="destination",
        destination_object="output-files/recent",
        last_modified_time=datetime.now() - timedelta(days=1)


1 commentaires

En regardant la documentation de flux d'air, airflow.apache.org/... Je pense < Code> Last_Modified_Time ne devrait pas être transmis comme paramètre.


3 Réponses :


0
votes

Utilisez le module PYTZ

import pytz
tz = pytz.timezone('Pacific/Johnston')   #change it to your suitable timezone
ct = datetime.now(tz=tz)


0 commentaires

0
votes

Si vous voulez connaître votre nom de fuseau horaire actuel. Il est possible avec le code ci-dessous: xxx pré>

sortie: p> xxx pré>

Vous pouvez envoyer du temps au format UTC comme suit: p>

dt.astimezone().utcnow()


0 commentaires

0
votes

Avec la bibliothèque standard, nécessite le décalage numérique

si vous avez le décalage numérique de votre fuseau horaire (comparé à UTC), vous utilisez la bibliothèque standard: P>

>>> from dateutil.tz import gettz  # GNU/Linux and macOS
>>> # Or, on Windows: from dateutil.tz.win import gettz
>>> datetime.now(tz=gettz("Europe/Paris")).strftime("%c (%Z)")
'Wed Feb 13 23:00:58 2019 (CET)'
>>> datetime.now(tz=gettz("Asia/Taipei")).strftime("%c (%Z)")
'Thu Feb 14 06:01:27 2019 (CST)'


0 commentaires