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?
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:
Các datetime
mô-đ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.
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
Đâ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())
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
Cho trăn 3
import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
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
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]
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
Đâ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ã.
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