Ho bisogno di sapere l'ora corrente su CDT quando viene eseguito il mio script Python. Tuttavia, questo script verrà eseguito in più fusi orari diversi, pertanto un offset semplice non funzionerà. Ho solo bisogno di una soluzione per Linux, ma una soluzione multipiattaforma sarebbe l'ideale.come trovare l'ora in un determinato fuso orario da qualsiasi luogo
risposta
È possibile utilizzare time.gmtime()
per ottenere l'ora GMT (UTC) da qualsiasi macchina indipendentemente dal fuso orario, quindi è possibile applicare l'offset.
Il problema è sapere quale sia l'offset, quindi questo non aiuta. –
Lennart, no, sta chiedendo come ottenere il tempo in un fuso orario precedentemente noto da qualsiasi altro, per cui 'gmtime()' è la soluzione perfetta .. –
Lo so. Il problema è ancora sapere quali sono gli offset tra i due fusi orari, CDT e l'altro. –
pytz o dateutil.tz è il trucco qui. In sostanza si tratta di qualcosa di simile:
>>> from pytz import timezone
>>> mytz = timezone('Europe/Paris')
>>> yourtz = timezone('US/Eastern')
>>> from datetime import datetime
>>> now = datetime.now(mytz)
>>> alsonow = now.astimezone(yourtz)
La difficoltà risiede proprio nel capire quale fuso orario ci si trova in dateutil.tz è meglio a questo..
>>> from dateutil.tz import tzlocal, gettz
>>> mytz = tzlocal()
>>> yourtz = gettz('US/Eastern')
Se si desidera che tutti i minimi dettagli sullo perché fusi orari sono male, sono qui:
http://regebro.wordpress.com/2007/12/18/python-and-time-zones-fighting-the-beast/
http://regebro.wordpress.com/2008/05/10/python-and-time-zones-part-2-the-beast-returns/
http://regebro.wordpress.com/2008/05/13/thanks-for-the-testing-help-conclusions/
A compensare funzionerà semplice, hai solo bisogno di compensare da UTC.
Usando datetime è possibile ottenere l'UTC (GMT) ora corrente e utilizzare gli oggetti datetime:
datetime.datetime.utcnow() - Fornisce l'ora in UTC
datetime.datetime.now() - Fornisce l'ora in macchina locale
Per ottenere l'ora CT da qualsiasi sistema è necessario conoscere lo sfasamento CT da UTC. Quindi per tenere conto del codice di ora legale una funzione per ottenere l'offset corrente.
>>> import datetime
>>> utc = datetime.datetime.utcnow()
>>> current_ct_offset = get_current_ct_offset()
>>> ct_datetime = utc + datetime.timedelta(hours=current_ct_offset)
potrei affaccia su qualcosa qui, ma se il tuo unico preoccupati per un fuso orario e il tuo nome movimentazione tz non fare, è piuttosto semplice.
Beh, è preoccupato per due fusi orari. Il locale e CDT. E molto probabilmente, con CDT, in realtà non significa che l'ora legale centrale sia risparmiata senza preoccuparsi dei cambiamenti nell'ora legale, perché sarebbe strano. –
Forse la domanda ha bisogno di ulteriori chiarimenti. La mia comprensione è che vuole "conoscere l'ora corrente in
Sì. Ma l'unico modo per conoscere in modo affidabile l'offset, se si preoccupa dell'ora legale (e sarebbe stupido non farlo) è usando un database timezone. Quindi, la mia risposta è ancora quella giusta. –
- 1. Come posso "annullare" una data in un determinato fuso orario?
- 2. ruby get Time in un determinato fuso orario
- 3. Ottieni un paese per un determinato fuso orario Java
- 4. Come si calcola l'offset, in ore, di un determinato fuso orario da UTC in ruby?
- 5. Rimuovi fuso orario da un oggetto moment.js
- 6. Come convertire la data da un fuso orario a un altro fuso orario
- 7. Come ottenere il contesto da qualsiasi luogo?
- 8. Come reagire a applicationWillResignActive da qualsiasi luogo?
- 9. inserire in serie in un luogo determinato
- 10. Estrai fuso orario da stringa
- 11. conversione fuso orario Silverlight
- 12. Come recuperare offset fuso orario da GMT + 0 in php?
- 13. Come convertire un datetime in un determinato fuso orario in C#?
- 14. Convertire fuso orario locale a PST fuso orario in C#
- 15. Data JavaScript: come sapere se l'ora legale è in vigore in un determinato fuso orario
- 16. Offset di un determinato fuso orario da GMT nello script di shell linux
- 17. Conversione data ora da fuso orario a fuso orario in server sql
- 18. fuso orario russo cambia
- 19. Converti oggetto datetime in un particolare fuso orario in epoca secondi in quel fuso orario
- 20. convertire il tempo da un fuso orario all'altro in Rails
- 21. javascript Data fuso orario
- 22. Fuso orario con PostgreSQL
- 23. fuso orario locale in Ruby
- 24. strptime con fuso orario
- 25. Ottieni fuso orario/paese da iPhone
- 26. Ottieni il fuso orario da DateTime
- 27. regolare il fuso orario
- 28. Ottenere Fuso orario in Android
- 29. git commit fuso orario
- 30. Come impostare il fuso orario in gnuplot?
CDT si riferisce a "Central Daylight Time" – hoju
Si desidera conoscere l'ora in CDT anche quando CDT non è in vigore? –
sì - l'app con cui sto interagendo lo usa. – hoju