Làm thế nào để có được thời gian hiện tại trong python và chia thành năm, tháng, ngày, giờ, phút?


311

Tôi muốn để có được thời gian hiện tại bằng Python và gán chúng vào các biến thích year, month, day, hour, minute. Làm thế nào điều này có thể được thực hiện trong Python 2.7?



Câu trả lời:


551

Các datetimemô-đun là bạn của bạn:

import datetime
now = datetime.datetime.now()
print now.year, now.month, now.day, now.hour, now.minute, now.second
# 2015 5 6 8 53 40

Bạn không cần các biến riêng biệt, các thuộc tính trên datetimeđối tượng được trả về có tất cả những gì bạn cần.


4
chỉ là một sự thay thế:import time \n now=time.localtime() \n print now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_hour, now.tm_min, now.tm_sec, now.tm_wday, now.tm_yday, now.tm_isdst
Sean.H

31

Đây là một lớp lót xuất hiện ngay dưới mức tối đa 80 char.

import time
year, month, day, hour, min = map(int, time.strftime("%Y %m %d %H %M").split())

29

Câu datetimetrả lời của tzaman sạch hơn nhiều, nhưng bạn có thể làm điều đó với timemô-đun python ban đầu :

import time
strings = time.strftime("%Y,%m,%d,%H,%M,%S")
t = strings.split(',')
numbers = [ int(x) for x in t ]
print numbers

Đầu ra:

[2016, 3, 11, 8, 29, 47]

14

Bằng cách giải nén timetupleđối tượng datetime, bạn sẽ nhận được những gì bạn muốn:

from datetime import datetime

n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t

6

Cho trăn 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)

6

Chúng ta hãy xem cách lấy và in ngày, tháng, năm bằng trăn từ thời điểm hiện tại:

import datetime

now = datetime.datetime.now()
year = '{:02d}'.format(now.year)
month = '{:02d}'.format(now.month)
day = '{:02d}'.format(now.day)
hour = '{:02d}'.format(now.hour)
minute = '{:02d}'.format(now.minute)
day_month_year = '{}-{}-{}'.format(year, month, day)

print('day_month_year: ' + day_month_year)

kết quả:

day_month_year: 2019-03-26


2

Ba thư viện để truy cập và thao tác ngày và thời gian, cụ thể là datetime, mũi tên và con lắc, tất cả đều làm cho các mục này có sẵn trong các tên được đặt tên có các phần tử có thể truy cập được bằng tên hoặc chỉ mục. Hơn nữa, các mục có thể truy cập chính xác theo cùng một cách. (Tôi cho rằng nếu tôi thông minh hơn tôi sẽ không ngạc nhiên.)

>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]

2

Bạn có thể sử dụng gmtime

from time import gmtime

detailed_time = gmtime() 
#returns a struct_time object for current time

year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min

Lưu ý: Dấu thời gian có thể được chuyển sang gmtime, mặc định là thời gian hiện tại được trả về theo thời gian ()

eg.
gmtime(1521174681)

Xem struct_time


1

Đây là một câu hỏi cũ hơn, nhưng tôi đã đưa ra một giải pháp mà tôi nghĩ người khác có thể thích.

def get_current_datetime_as_dict():
n = datetime.now()
t = n.timetuple()
field_names = ["year",
               "month",
               "day",
               "hour",
               "min",
               "sec",
               "weekday",
               "md",
               "yd"]
return dict(zip(field_names, t))

timetuple () có thể được nén bằng một mảng khác, tạo ra các bộ dữ liệu được gắn nhãn. Truyền nó vào một từ điển và sản phẩm kết quả có thể được tiêu thụ vớiget_current_datetime_as_dict()['year'] .

Điều này có chi phí cao hơn một chút so với một số giải pháp khác ở đây, nhưng tôi thấy thật tuyệt khi có thể truy cập các giá trị được đặt tên vì lợi ích của clartiy trong mã.


-4

bạn có thể sử dụng mô đun datetime để lấy Ngày và Giờ hiện tại trong Python 2.7

import datetime
print datetime.datetime.now()

Đầu ra:

2015-05-06 14:44:14.369392

7
Điều này không trả lời câu hỏi.
Colin 't Hart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.