Apa modul/metode yang digunakan untuk mendapatkan waktu saat ini?
Gunakan:
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)
>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150
Dan hanya waktu:
>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)
>>> print(datetime.datetime.now().time())
15:08:24.789150
Lihat dokumentasi untuk informasi lebih lanjut.
Untuk menghemat pengetikan, anda dapat mengimpor datetime
objek dari datetime
module:
>>> from datetime import datetime
Kemudian menghapus terkemuka datetime.
dari semua hal di atas.
Anda dapat menggunakan waktu.strftime()
:
>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
Untuk contoh ini, output akan menjadi seperti ini: '2013-09-18 11:16:32'
Berikut ini adalah daftar dari strftime
arahan.
Bagaimana cara saya mendapatkan waktu saat ini di Python?
Waktu
modulWaktu
modul menyediakan fungsi yang memberitahu kita waktu di "detik sejak epoch" serta utilitas lainnya.
import time
Ini adalah format yang anda harus mendapatkan waktu untuk menyimpan dalam database. Ini adalah sederhana floating point nomor yang dapat dikonversi ke integer. Hal ini juga baik untuk aritmatika dalam hitungan detik, karena ini merupakan jumlah detik sejak tanggal 1 Januari 1970 00:00:00, dan itu adalah memori yang relatif ringan untuk representasi lain waktu kita'akan melihat berikutnya:
>>> time.time()
1424233311.771502
Ini timestamp tidak memperhitungkan lompatan-detik, sehingga's tidak linear - lompatan detik akan diabaikan. Jadi saat ini tidak setara dengan internasional UTC standar, lebih dekat, dan karena itu cukup baik untuk sebagian besar kasus pencatatan.
Ini tidak ideal untuk manusia penjadwalan, namun. Jika anda memiliki sebuah peristiwa di masa depan yang anda inginkan untuk terjadi pada titik tertentu dalam waktu, anda'll ingin menyimpan waktu itu dengan sebuah string yang dapat diurai menjadi datetime objek atau serial datetime objek (hal ini akan dijelaskan kemudian).
waktu.ctime
Anda juga dapat mewakili waktu saat ini dalam cara yang lebih disukai oleh sistem operasi anda (yang berarti dapat berubah ketika anda mengubah preferensi sistem anda, jadi don't bergantung pada hal ini menjadi standar di semua sistem, seperti yang saya've melihat orang lain harapkan). Biasanya ini adalah user friendly, tapi doesn't biasanya mengakibatkan string satu dapat mengurutkan secara kronologis:
>>> time.ctime()
'Tue Feb 17 23:21:56 2015'
Anda dapat menghidrasi cap waktu ke bentuk yang dapat dibaca manusia dengan ctime
juga:
>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'
Konversi ini juga tidak baik untuk pencatatan (kecuali dalam teks yang hanya dapat dibaca oleh manusia - dan dengan peningkatan Pengenalan Karakter Optik dan Kecerdasan Buatan, saya pikir jumlah kasus ini akan berkurang).
datetime
modulThe datetime
modul ini juga cukup berguna di sini:
>>> import datetime
datetime.datetime.sekarang
The datetime.sekarang
adalah metode kelas yang mengembalikan waktu saat ini. Ia menggunakan waktu.localtime
tanpa timezone info (jika tidak diberikan, jika tidak melihat timezone sadar di bawah ini). Memiliki representasi (yang akan memungkinkan anda untuk menciptakan aplikasi yang setara objek) bergema di shell, tapi ketika dicetak (atau dipaksa untuk str
), hal ini di dapat dibaca manusia (dan hampir ISO) format, dan leksikografi semacam ini setara dengan kronologis semacam:
>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461
utcnow
Anda bisa mendapatkan datetime objek dalam waktu UTC, standar global, dengan melakukan hal ini:
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988
UTC adalah standar waktu yang hampir setara dengan zona waktu GMT. (Sementara GMT dan UTC tidak berubah untuk Daylight Savings Time, pengguna dapat beralih ke zona waktu lain, seperti British Summer Time, selama musim Panas.)
Namun, tidak satupun dari datetime benda kita've dibuat sejauh ini dapat dengan mudah dikonversi untuk berbagai zona waktu. Kita dapat memecahkan masalah itu dengan pytz
module:
>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)
Dengan kata lain, di Python 3 kita memiliki timezone
kelas dengan utc timezone
contoh terlampir, yang juga membuat objek timezone sadar (tapi untuk mengkonversi ke yang lain timezone tanpa handy pytz
modul yang tersisa sebagai latihan untuk pembaca):
>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)
Dan kita melihat bahwa kita dapat dengan mudah mengkonversi ke zona waktu dari aslinya utc objek.
>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00
Anda juga dapat membuat naif datetime objek menyadari dengan pytz
timezone melokalkan
metode, atau dengan mengganti tzinfo atribut (dengan mengganti
, hal ini dilakukan secara membabi buta), tapi ini lebih resor terakhir dari praktek-praktek terbaik:
>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)
The pytz
modul memungkinkan kita untuk membuat kita datetime
benda timezone sadar dan mengkonversi kali ke ratusan zona waktu yang tersedia di pytz
modul.
Satu bisa seolah-olah membuat objek ini untuk waktu UTC dan toko yang dalam database, tapi itu akan membutuhkan jauh lebih banyak memori dan menjadi lebih rentan terhadap kesalahan daripada hanya menyimpan Unix Epoch time, yang saya ditunjukkan pertama.
Cara lain melihat waktu yang jauh lebih rawan kesalahan, terutama ketika berhadapan dengan data yang mungkin datang dari zona waktu yang berbeda. Anda ingin tidak ada kebingungan yang timezone string atau serial datetime benda itu dimaksudkan untuk.
Jika anda're menampilkan waktu dengan Python untuk pengguna, ctime
bekerja dengan baik, tidak di atas meja (itu doesn't biasanya semacam yah), tapi mungkin dalam jam. Namun, saya pribadi menyarankan, ketika berhadapan dengan waktu di Python, baik menggunakan Unix waktu atau timezone menyadari UTC datetime
objek.
>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'
Bahwa output GMT saat ini dalam format yang ditentukan. Ada juga localtime()
metode.
Ini halaman memiliki rincian lebih lanjut.
Sebelumnya jawaban semua saran yang baik, tapi saya merasa lebih mudah untuk menggunakan ctime()
:
In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'
Hal ini memberikan baik diformat representasi string dari saat ini waktu setempat.
Cara tercepat adalah:
>>> import time
>>> time.strftime("%Y%m%d")
'20130924'
Mengapa tidak meminta US Naval Observatory, pencatat waktu resmi dari Angkatan laut Amerika Serikat?
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])
Jika anda tinggal di daerah DC (seperti saya) latency mungkin tidak akan terlalu buruk...
Menggunakan panda untuk mendapatkan waktu saat ini, jenis overkilling masalah di tangan:
import pandas as pd
print(pd.datetime.now())
print(pd.datetime.now().date())
print(pd.datetime.now().year)
print(pd.datetime.now().month)
print(pd.datetime.now().day)
print(pd.datetime.now().hour)
print(pd.datetime.now().minute)
print(pd.datetime.now().second)
print(pd.datetime.now().microsecond)
Output:
2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
Ini adalah apa yang saya akhirnya pergi dengan:
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11
Juga, tabel ini adalah diperlukan referensi untuk memilih sesuai format kode untuk mendapatkan tanggal yang diformat dengan cara yang anda inginkan (dari Python "datetime" dokumentasi di sini).
jika anda menggunakan numpy sudah maka secara langsung anda dapat menggunakan numpy.datetime64() fungsi.
import numpy as np
str(np.datetime64('now'))
untuk upload:
str(np.datetime64('today'))
atau, jika anda menggunakan panda sudah maka anda dapat menggunakan panda.to_datetime() fungsi
import pandas as pd
str(pd.to_datetime('now'))
atau,
str(pd.to_datetime('today'))
Anda dapat menggunakan waktu
module:
import time
print time.strftime("%d/%m/%Y")
>>> 06/02/2015
Penggunaan modal Y
memberi setahun penuh, dan menggunakan y
akan memberikan 06/02/15
.
Anda juga bisa menggunakan kode berikut untuk memberikan lebih banyak waktu yang panjang:
time.strftime("%a, %d %b %Y %H:%M:%S")
>>> 'Fri, 06 Feb 2015 17:45:09'
import datetime
date_time = datetime.datetime.now()
date = date_time.date() # Gives the date
time = date_time.time() # Gives the time
print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
Melakukan dir(tanggal)
atau variabel-variabel yang termasuk dalam paket. Anda bisa mendapatkan semua atribut dan metode yang berhubungan dengan variabel.
datetime.now()
mengembalikan waktu saat ini sebagai naif datetime objek yang mewakili waktu dalam zona waktu lokal. Nilai tersebut dapat menjadi ambigu misalnya, selama DST transisi ("kembali"). Untuk menghindari ambiguitas baik zona waktu UTC harus digunakan:
from datetime import datetime
utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417
Atau timezone-menyadari objek yang telah sesuai timezone info terpasang (Python 3.2+):
from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00
Secara default, now()
mengembalikan fungsi output dalam YYYY-MM-DD HH:MM:SS:MS
format. Gunakan di bawah ini contoh script untuk mendapatkan tanggal dan waktu saat ini di Python script dan hasil cetak di layar. Buat file getDateTime1.py
dengan konten di bawah ini.
import datetime
currentDT = datetime.datetime.now()
print (str(currentDT))
Output terlihat seperti di bawah ini:
2018-03-01 17:03:46.759624
Cobalah panah modul dari http://crsmithdev.com/arrow/:
import arrow
arrow.now()
Atau UTC versi:
arrow.utcnow()
Untuk mengubah output, menambahkan .format():
arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
Untuk menemukan zona waktu:
arrow.now('US/Pacific')
Satu jam yang lalu:
arrow.utcnow().replace(hours=-1)
Atau jika anda ingin gist.
arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'