Cara mendapatkan waktu saat ini di Python

2891

Apa modul / metode yang digunakan untuk mendapatkan waktu saat ini?

pengguna46646
sumber
harap dicatat, jawaban yang paling banyak dipilih adalah untuk waktu-naif-waktu-naif, sementara kita melihat bahwa dalam lingkungan produksi semakin banyak layanan di seluruh dunia yang terhubung bersama dan waktu-sadar-waktu menjadi standar yang diperlukan
Sławomir Lenart

Jawaban:

3052

Menggunakan:

>>> 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 tepat 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 menyimpan pengetikan, Anda dapat mengimpor datetimeobjek dari datetimemodul:

>>> from datetime import datetime

Kemudian hapus yang memimpin datetime.dari semua yang di atas.

Harley Holcombe
sumber
25
Akan lebih baik jika jawaban ini mencakup zona waktu (mungkin UTC sebagai contoh) dan mungkin mulai dengan time.time ().
Greg Lindahl
4
@Toskan format itu bukan bagian dari pertanyaan, jadi seharusnya tidak menjadi bagian dari jawabannya. Sudah ada tautan yang disediakan untuk lebih banyak dokumentasi modul yang berisi hal-hal seperti pemformatan.
JiyuuSensei
Versi Python manakah dari jawaban asli yang diberikan? Cukup mengetikkan datetime.datetime.now()konsol interaktif Python 2.7 saya (IronPython belum diperbarui) memberi saya perilaku yang sama dengan contoh yang lebih baru menggunakan print()dalam jawabannya. Saya belum berhasil mereplikasi apa yang ditunjukkan oleh jawaban aslinya (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Bukannya saya benar-benar ingin, perilaku print () lebih disukai, tetapi saya ingin tahu.)
RTHarston
@ BobVicktor: Python 2.7, 3.7 dan 3.8 semua memberikan perilaku yang sama untuk saya, tidak yakin apa yang Anda lihat.
Harley Holcombe
@ HarleyHolcombe Hmm ... mungkin itu adalah hal IronPython? Ketika saya mengetik datetime.now()sendiri itu mencetaknya sama seperti jawaban Anda menunjukkan print(datetime.now())...
RTHarston
956

Anda bisa menggunakan time.strftime():

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
Sean James
sumber
48
Apakah ini lebih baik / lebih buruk daripada jawaban @ ParaMeterz di bawah ini? Mengapa kita harus menggunakan timemodul vs. datetimemodul?
Nathan
3
Itu tidak mengembalikan jam komputer saya saat ini.
Saeed
5
Ini adalah waktu UTC, berbeda dari modul datetime
Voyager
5
@ Saeed: Gunakan fungsi localtime()alih-alih gmtime()untuk mendapatkan waktu lokal Anda.
Jeyekomon
3
@frank Lihat pertanyaan terkait di datetimevs time.
Packard CPW
621
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')

Untuk contoh ini, hasilnya akan seperti ini: '2013-09-18 11:16:32'

Ini adalah daftar strftimearahan .

ParaMeterz
sumber
456

Mirip dengan jawaban Harley , tetapi gunakan str()fungsi ini untuk format cepat-n-kotor, sedikit lebih dapat dibaca manusia:

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'
sinar
sumber
13
Yang diminta hanyalah mendapatkan waktu saat ini, bukan untuk menampilkannya.
pppery
@ppperry, maka cukup berikan variabel ke jawaban Ray - seperti: myTime = str (datetime.now ()) .
Lukas
2
Tidak berhubungan; langkah "str" ​​tidak berada dalam lingkup pertanyaan
pppery
4
@pppery juga tidak op mengatakan ini bukan tentang mendapatkan untaian waktu. Op sama sekali tidak mengatakan apa yang ingin mereka lakukan dengan waktu, jadi mengapa itu hal yang buruk untuk menunjukkan bagaimana mengubahnya menjadi string? Sebagian besar jawaban berbicara tentang mendapatkan string dari waktu, sehingga tampaknya menjadi kasus penggunaan umum, jadi mengapa memilih jawaban Ray? Apa gunanya hanya mendapatkan waktu tanpa tahu bagaimana melakukan sesuatu dengan itu? Anda dapat mencetaknya, atau menghitungnya, dan hanya beberapa jawaban yang menunjukkan bagaimana menghitungnya, jadi saya pikir mencetak / mendapatkan string adalah penggunaan yang umum. ;-) (Saya tahu ini tujuan saya.)
RTHarston
1
Fakta bahwa jawaban ini memiliki lebih dari 440 upvotes menunjukkan bahwa penambahan minor dari metode string adalah berguna untuk banyak orang.
John
360

Bagaimana saya mendapatkan waktu saat ini di Python?

The timemodul

The timemodul menyediakan fungsi yang memberitahu kita waktu di "detik sejak zaman" serta utilitas lainnya.

import time

Unix Epoch Time

Ini adalah format yang Anda harus dapatkan cap waktu untuk menyimpan dalam database. Ini adalah angka floating point sederhana yang dapat dikonversi ke integer. Ini juga baik untuk perhitungan dalam hitungan detik, karena mewakili jumlah detik sejak 1 Januari 1970 00:00:00, dan itu adalah lampu memori relatif terhadap representasi waktu lainnya yang akan kita lihat selanjutnya:

>>> time.time()
1424233311.771502

Stempel waktu ini tidak menghitung detik kabisat, jadi ini tidak linier - detik kabisat diabaikan. Jadi, meskipun tidak setara dengan standar UTC internasional, itu dekat, dan karena itu cukup baik untuk sebagian besar kasus pencatatan.

Namun, ini tidak ideal untuk penjadwalan manusia. Jika Anda memiliki acara di masa depan yang ingin Anda lakukan pada titik waktu tertentu, Anda ingin menyimpan waktu itu dengan string yang dapat diurai menjadi objek datetime atau objek datetime serial (ini akan dijelaskan nanti).

time.ctime

Anda juga dapat mewakili waktu saat ini dengan cara yang disukai oleh sistem operasi Anda (yang berarti dapat berubah ketika Anda mengubah preferensi sistem Anda, jadi jangan mengandalkan ini untuk menjadi standar di semua sistem, seperti yang saya lihat orang lain harapkan) . Ini biasanya ramah pengguna, tetapi biasanya tidak menghasilkan string yang dapat disortir secara kronologis:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

Anda juga dapat melembabkan stempel waktu ke dalam bentuk yang dapat dibaca manusia ctime:

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

Konversi ini juga tidak baik untuk penyimpanan catatan (kecuali dalam teks yang hanya akan diuraikan oleh manusia - dan dengan Pengenalan Karakter Optik dan Kecerdasan Buatan yang ditingkatkan, saya pikir jumlah kasus ini akan berkurang).

datetime modul

The datetimeModul ini juga cukup berguna di sini:

>>> import datetime

datetime.datetime.now

Ini datetime.nowadalah metode kelas yang mengembalikan waktu saat ini. Ini menggunakan time.localtimetanpa info zona waktu (jika tidak diberikan, jika tidak lihat zona waktu sadar di bawah). Ini memiliki representasi (yang akan memungkinkan Anda untuk membuat ulang objek yang setara) bergema di shell, tetapi ketika dicetak (atau dipaksa ke a str), itu dalam format yang dapat dibaca manusia (dan hampir ISO), dan jenis leksikografis setara dengan semacam kronologis:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

datetime utcnow

Anda bisa mendapatkan objek datetime dalam waktu UTC, standar global, dengan melakukan 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. (Meskipun GMT dan UTC tidak berubah untuk Daylight Savings Time, pengguna mereka dapat beralih ke zona waktu lainnya, seperti British Summer Time, selama Musim Panas.)

sadar zona waktu

Namun, tidak ada objek datetime yang kami buat sejauh ini dapat dengan mudah dikonversi ke berbagai zona waktu. Kita dapat memecahkan masalah itu dengan pytzmodul:

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

Secara setara, dalam Python 3 kita memiliki timezonekelas dengan timezoneinstance utc yang terpasang, yang juga membuat objek timezone sadar (tetapi untuk mengkonversi ke zona waktu lain tanpa pytzmodul berguna dibiarkan sebagai latihan untuk pembaca):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

Dan kami melihat kami dapat dengan mudah mengkonversi zona waktu dari objek utc asli.

>>> 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 objek datetime naif menyadari dengan metode pytzzona waktu localize, atau dengan mengganti atribut tzinfo (dengan replace, ini dilakukan secara membabi buta), tetapi ini lebih merupakan upaya terakhir daripada praktik 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 pytzmodul memungkinkan kita untuk membuat kita datetimebenda Zona Waktu sadar dan mengubah kali ke ratusan zona waktu yang tersedia dalam pytzmodul.

Satu seolah-olah bisa cerita bersambung obyek ini untuk waktu UTC dan toko yang dalam database, tetapi akan memerlukan jauh lebih banyak memori dan lebih rentan terhadap kesalahan daripada hanya menyimpan waktu Unix Epoch, yang saya contohkan pertama.

Cara lain untuk melihat waktu jauh lebih rentan kesalahan, terutama ketika berhadapan dengan data yang mungkin berasal dari zona waktu yang berbeda. Anda ingin tidak ada kebingungan untuk zona waktu mana string atau objek datetime serial dimaksudkan untuk.

Jika Anda menampilkan waktu dengan Python untuk pengguna, ctimeberfungsi dengan baik, tidak dalam tabel (biasanya tidak diurutkan dengan baik), tetapi mungkin dalam jam. Namun, saya pribadi merekomendasikan, ketika berhadapan dengan waktu dalam Python, baik menggunakan waktu Unix, atau datetimeobjek UTC sadar zona waktu .

Aaron Hall
sumber
133

Melakukan

from time import time

t = time()
  • t - angka float, bagus untuk pengukuran interval waktu.

Ada beberapa perbedaan untuk platform Unix dan Windows.

maks
sumber
Hasil saya di rumah Windows 10 adalah 1576095264.2682993 - untuk Windows, ini mungkin hanya memberikan waktu dalam hitungan detik.
PythonMaster202
101
>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

Itu menampilkan GMT saat ini dalam format yang ditentukan. Ada juga localtime()metode.

Halaman ini memiliki lebih banyak detail.

Vijay Dev
sumber
69

Jawaban sebelumnya adalah semua saran yang bagus, tetapi saya merasa paling mudah untuk digunakan ctime():

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

Ini memberikan representasi string yang diformat dengan baik dari waktu setempat saat ini.

Sangat halus
sumber
OP bertanya bagaimana cara mendapatkan waktu, bukan bagaimana menampilkannya!
TheTechRobo36414519
58

Cara tercepat adalah:

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'
nacholibre
sumber
52

Jika Anda membutuhkan waktu saat ini sebagai timeobjek:

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)
kebiruan
sumber
36

.isoformat() ada di dokumentasi, tetapi belum di sini (ini mirip dengan jawaban @Ray Vega):

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'
emmagras
sumber
35

Mengapa tidak bertanya kepada US Naval Observatory , pencatat waktu resmi 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 area DC (seperti saya) latensi mungkin tidak terlalu buruk ...

C8H10N4O2
sumber
18
@ C8H10N4O2 Meskipun Anda benar bahwa jawaban yang lain menganggap bahwa komputer Anda sudah mengetahui waktu yang tepat, jawaban ini mengasumsikan bahwa komputer memiliki koneksi ke internet, bahwa Anda berada di AS, dan bahwa mereka tidak akan pernah mencatat file itu / ubah tautannya. Jauh lebih banyak asumsi dalam jawaban ini daripada yang diterima. Masih pandai tidak kurang
sudobangbang
33

Menggunakan panda untuk mendapatkan waktu saat ini, agak berlebihan dalam mengatasi masalah:

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)

Keluaran:

2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
prudhvi Indana
sumber
28

Inilah yang akhirnya saya lakukan:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

Juga, tabel ini adalah referensi yang diperlukan untuk memilih kode format yang sesuai untuk mendapatkan tanggal diformat seperti yang Anda inginkan (dari dokumentasi Python "datetime" di sini ).

tabel kode format strftime

Kristen G.
sumber
2
strftime(time_format)mengembalikan waktu lokal saat ini sebagai string yang sesuai dengan yang diberikan time_format. Catatan: time.strftime()dan datetime.strftime()mendukung set direktif yang berbeda misalnya, %ztidak didukung oleh time.strftime()pada Python 2 .
jfs
1
Apakah lebih baik menggunakan datetime daripada berlatih waktu?
Kristen G.
2
Banyak timefungsi modul adalah pembungkus tipis di sekitar fungsi C yang sesuai. datetimeadalah tingkat yang lebih tinggi dan biasanya lebih portabel.
jfs
24

jika Anda sudah menggunakan numpy maka secara langsung Anda dapat menggunakan fungsi numpy.datetime64 ().

import numpy as np
str(np.datetime64('now'))

hanya untuk tanggal:

str(np.datetime64('today'))

atau, jika Anda sudah menggunakan panda maka Anda dapat menggunakan fungsi pandas.to_datetime ()

import pandas as pd
str(pd.to_datetime('now'))

atau,

str(pd.to_datetime('today'))
durjoy
sumber
23

Anda dapat menggunakan timemodul:

import time
print time.strftime("%d/%m/%Y")

>>> 06/02/2015

Penggunaan modal Ymemberi satu tahun penuh, dan menggunakan yakan memberi 06/02/15.

Anda juga dapat menggunakan kode berikut untuk memberikan waktu yang lebih panjang:

time.strftime("%a, %d %b %Y %H:%M:%S")
>>> 'Fri, 06 Feb 2015 17:45:09'
Tom
sumber
20

datetime.now()mengembalikan waktu saat ini sebagai objek datetime naif yang mewakili waktu di zona waktu lokal. Nilai itu mungkin ambigu misalnya, selama transisi DST ("mundur"). Untuk menghindari ambiguitas, zona waktu UTC harus digunakan:

from datetime import datetime

utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417

Atau objek sadar zona waktu yang memiliki info zona waktu terkait (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
jfs
sumber
18
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

Apakah dir(date)atau variabel apa pun termasuk paket. Anda bisa mendapatkan semua atribut dan metode yang terkait dengan variabel.

theBuzzyCoder
sumber
@snofty dan @ user1016274, jika import datetimeitu adalah datetime.datetime.now()\ n jika from datetime import datetimemaka itudatetime.now()
theBuzzyCoder
17
>>> import datetime, time
>>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:21:38:20S'
pengguna2030113
sumber
Saya pikir Anda bermaksud mengatakan "datetime.now (). Strftime (...)"
hlin117
ya itu bisa dilakukan seperti yang Anda katakan. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")"
user2030113
3
% MS tidak memberi Anda milidetik !!
ZF007
15

Secara default, now()fungsi mengembalikan output dalam YYYY-MM-DD HH:MM:SS:MSformat. Gunakan skrip sampel di bawah ini untuk mendapatkan tanggal dan waktu saat ini dalam skrip Python dan mencetak hasil di layar. Buat file getDateTime1.pydengan konten di bawah ini.

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

Outputnya terlihat seperti di bawah ini:

2018-03-01 17:03:46.759624
Madhusudhan R
sumber
14

Pertanyaan ini tidak memerlukan jawaban baru hanya untuk itu ... mainan / modul mengkilap baru, bagaimanapun, cukup pembenaran. Itu menjadi perpustakaan Pendulum , yang tampaknya melakukan hal-hal yang dicoba panah, kecuali tanpa cacat dan bug yang melekat yang menimpa panah.

Misalnya, jawaban atas pertanyaan awal:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.now('utc'))
2018-08-13T19:29:35.051023+00:00

Ada banyak standar yang perlu diperhatikan, termasuk beberapa RFC dan ISO, yang perlu dikhawatirkan. Pernah membuat mereka bingung; jangan khawatir, lihatlah sedikit. dir(pendulum.constants)Ada sedikit lebih banyak daripada format RFC dan ISO di sana.

Ketika kita mengatakan lokal, apa artinya? Maksud saya:

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

Mungkin sebagian besar dari Anda berarti di tempat lain.

Dan seterusnya. Singkat cerita: Pendulum berupaya melakukan untuk tanggal dan waktu apa permintaan dilakukan untuk HTTP. Ini patut dipertimbangkan, terutama untuk kemudahan penggunaan dan dokumentasi yang luas.

Ben
sumber
13

Waktu saat ini dari zona waktu

from datetime import datetime
import pytz

tz_NY = pytz.timezone('America/New_York') 
datetime_NY = datetime.now(tz_NY)
print("NY time:", datetime_NY.strftime("%H:%M:%S"))

tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London time:", datetime_London.strftime("%H:%M:%S"))

tz_India = pytz.timezone('Asia/India')
datetime_India = datetime.now(tz_India)
print("India time:", datetime_India.strftime("%H:%M:%S"))

#list timezones
pytz.all_timezones
juara-pelari
sumber
12

Coba modul panah dari http://crsmithdev.com/arrow/ :

import arrow
arrow.now()

Atau versi UTC:

arrow.utcnow()

Untuk mengubah outputnya, tambahkan .format ():

arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')

Untuk zona waktu tertentu:

arrow.now('US/Pacific')

Satu jam yang lalu:

arrow.utcnow().replace(hours=-1)

Atau jika Anda menginginkan intinya.

arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'
Back2Basics
sumber
5
waspadalah yang arrow.now('Time/Zone')mungkin gagal untuk beberapa zona waktu ( arrowpenggunaan dateutilyang telah merusak utc -> konversi lokal yang digunakan di dalam arrow.now(). Catatan: pytztidak memiliki masalah seperti itu . Juga, ada masalah terkait zona waktu lainnya
jfs
12

Saya ingin mendapatkan waktu dengan milidetik. Cara mudah untuk mendapatkannya:

import time, datetime

print(datetime.datetime.now().time())                         # 11:20:08.272239

# Or in a more complicated way
print(datetime.datetime.now().time().isoformat())             # 11:20:08.272239
print(datetime.datetime.now().time().strftime('%H:%M:%S.%f')) # 11:20:08.272239

# But do not use this:
print(time.strftime("%H:%M:%S.%f", time.localtime()), str)    # 11:20:08.%f

Tetapi saya hanya menginginkan milidetik , bukan? Cara terpendek untuk mendapatkannya:

import time

time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
# 11:34:23.751

Tambah atau hapus nol dari perkalian terakhir untuk menyesuaikan jumlah titik desimal, atau cukup:

def get_time_str(decimal_points=3):
    return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
y.selivonchyk
sumber
1
Ini berfungsi dalam Python 3: time.strftime ("% H:% M:% S", time.localtime ()) + '. {}'. Format (int (time.time ()% 1 * 1000))
Greg Graham
11

Anda dapat menggunakan fungsi ini untuk mendapatkan waktu (sayangnya tidak mengatakan AM atau PM):

def gettime():
    from datetime import datetime
    return ((str(datetime.now())).split(' ')[1]).split('.')[0]

Untuk mendapatkan jam, menit, detik, dan milidetik untuk digabungkan nanti, Anda bisa menggunakan fungsi-fungsi ini:

Jam:

def gethour():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]

Menit:

def getminute():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]

Kedua:

def getsecond():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]

Mili detik:

def getmillisecond():
    from datetime import datetime
    return (str(datetime.now())).split('.')[1]
Richie Bendall
sumber
10

Jika Anda hanya ingin cap waktu saat ini dalam ms (misalnya, untuk mengukur waktu eksekusi), Anda juga dapat menggunakan modul "timeit":

import timeit
start_time = timeit.default_timer()
do_stuff_you_want_to_measure()
end_time = timeit.default_timer()
print("Elapsed time: {}".format(end_time - start_time))
motagirl2
sumber
8

Berikut ini adalah apa yang saya gunakan untuk mendapatkan waktu tanpa harus memformat. Beberapa orang tidak suka metode split, tetapi ini berguna di sini:

from time import ctime
print ctime().split()[3]

Ini akan mencetak dalam format HH: MM: SS.

Amro elaswar
sumber
8

Karena belum ada yang menyebutkannya, dan ini adalah sesuatu yang saya temui baru-baru ini ... metode fromutc () pytz timezone yang dikombinasikan dengan utcnow datetime () adalah cara terbaik yang saya temukan untuk mendapatkan waktu saat ini yang berguna (dan tanggal) di zona waktu apa pun.

from datetime import datetime

import pytz


JST = pytz.timezone("Asia/Tokyo")


local_time = JST.fromutc(datetime.utcnow())

Jika yang Anda inginkan adalah waktu, Anda bisa mendapatkannya dengan itu local_time.time().

kungphu
sumber
Anehnya, semua jawaban di atas tidak menyebutkan zona waktu. Anda juga harus memasukkan strftime untuk mendapatkan format yang Anda inginkan.
GraphicalDot
1
Saya tidak memasukkannya karena sudah tercakup dalam jawaban lain (dan tampilan format bukan bagian dari pertanyaan).
kungphu
7

Pertanyaan ini untuk Python tetapi karena Django adalah salah satu kerangka kerja yang paling banyak digunakan untuk Python, penting untuk dicatat bahwa jika Anda menggunakan Django Anda selalu dapat menggunakan timezone.now()bukan datetime.datetime.now(). Yang pertama adalah zona waktu 'sadar' sedangkan yang terakhir tidak.

Lihat jawaban SO ini dan dokumen Django untuk detail dan alasan di belakang timezone.now().

from django.utils import timezone

now = timezone.now()
Anupam
sumber
7

Anda dapat melakukannya menggunakan ctime ():

from time import time, ctime
t = time()
ctime(t)

keluaran:

Sat Sep 14 21:27:08 2019

Output ini berbeda karena stempel waktu yang dikembalikan ctime()tergantung pada lokasi geografis Anda.

Sai Kiran Sangam
sumber