วิธีการรับเวลาปัจจุบันในงูหลามและแยกเป็นปี, เดือน, วัน, ชั่วโมง, นาที?


311

ฉันต้องการที่จะได้รับเวลาปัจจุบันในหลามและกำหนดพวกเขาเป็นตัวแปรเช่นyear, month, day, ,hour minuteวิธีนี้สามารถทำได้ใน Python 2.7



คำตอบ:


551

datetimeโมดูลเป็นเพื่อนของคุณ:

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

คุณไม่จำเป็นต้องใช้ตัวแปรแยกกันคุณลักษณะของdatetimeวัตถุที่คืนมานั้นมีทุกอย่างที่คุณต้องการ


4
เพียงแค่อำนาจสูงสุด: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

นี่คือหนึ่งซับที่มาในระดับต่ำกว่า 80 อักขระ

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

29

datetimeคำตอบโดยtzamanมากสะอาด แต่คุณสามารถทำมันได้ด้วยงูหลามเดิมtimeโมดูล:

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

เอาท์พุท:

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

14

ด้วยการคลายtimetupleวัตถุ datetime คุณควรได้สิ่งที่คุณต้องการ:

from datetime import datetime

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


6

มาดูวิธีรับและพิมพ์วันเดือนปีในไพ ธ อนจากเวลาปัจจุบัน:

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)

ผลลัพธ์:

day_month_year: 2019-03-26


2

สามไลบรารีสำหรับการเข้าถึงและจัดการวันที่และเวลาคือวันที่และเวลาลูกศรและลูกตุ้มทำให้รายการเหล่านี้มีอยู่ใน namedtuples ซึ่งองค์ประกอบสามารถเข้าถึงได้โดยชื่อหรือดัชนี นอกจากนี้รายการสามารถเข้าถึงได้อย่างแม่นยำในลักษณะเดียวกัน (ฉันคิดว่าถ้าฉันฉลาดกว่าฉันจะไม่แปลกใจเลย)

>>> 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

คุณสามารถใช้ 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

หมายเหตุ: การประทับเวลาสามารถส่งผ่านไปยัง gmtime ค่าเริ่มต้นคือเวลาปัจจุบันตามที่ส่งคืนตามเวลา ()

eg.
gmtime(1521174681)

ดูstruct_time


1

นี่เป็นคำถามที่เก่ากว่า แต่ฉันคิดวิธีแก้ปัญหาที่ฉันคิดว่าคนอื่นอาจชอบ

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))

scheduple () สามารถซิปกับอาเรย์อื่นซึ่งสร้างสิ่งอันดับที่มีเลเบล get_current_datetime_as_dict()['year']โพลล์ว่าในพจนานุกรมและผลิตภัณฑ์ผลสามารถนำมาบริโภคด้วย

นี่มีค่าใช้จ่ายเล็กน้อยมากกว่าโซลูชันอื่น ๆ ที่นี่ แต่ฉันพบว่ามันดีมากที่จะสามารถเข้าถึงค่าที่ตั้งชื่อเพื่อประโยชน์ของ clartiy ในโค้ด


-4

คุณสามารถใช้โมดูลวันที่และเวลาเพื่อรับวันที่และเวลาปัจจุบันใน Python 2.7

import datetime
print datetime.datetime.now()

ผลผลิต:

2015-05-06 14:44:14.369392

7
สิ่งนี้ไม่ตอบคำถาม
Colin 't Hart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.