2009-07-15 37 views

Trả lời

64

Đó là trên thực tế gần như giống nhau trong Python .. :-)

import datetime 
year = datetime.date.today().year 

Tất nhiên, ngày không có thời gian liên quan, vì vậy nếu bạn xe e về điều đó quá, bạn có thể làm tương tự với một đối tượng datetime hoàn chỉnh:

import datetime 
year = datetime.datetime.today().year 

(Rõ ràng là không có khác nhau, nhưng bạn có thể lưu trữ datetime.datetime.today() trong một biến trước khi bạn lấy năm, tất nhiên).

Một điều quan trọng cần lưu ý là các thành phần thời gian có thể khác nhau giữa các pythons 32 bit và 64 bit trong một số phiên bản python (cây 2.5.x mà tôi nghĩ). Vì vậy, bạn sẽ tìm thấy những thứ như giờ/phút/giây trên một số nền tảng 64 bit, trong khi bạn nhận được giờ/phút/giây trên 32-bit.

14
import datetime 
a = datetime.datetime.today().year 

hoặc thậm chí (như Lennart gợi ý)

a = datetime.datetime.now().year 

hoặc thậm chí

a = datetime.date.today().year 
+1

Mặc dù bây giờ() cảm thấy tự nhiên hơn trên datetime. datetime.date.today(). Năm, có thể. :) –

+0

Tôi đã không nghĩ về điều đó, và tôi đoán nó cảm thấy "chính xác" đối với thời gian, nơi mà ngày hôm nay() có vẻ hàm ý một sự chính xác của ngày. Điều kỳ lạ (ít nhất là trong 2.5.4) datetime.today() và datetime.now() làm điều tương tự –

+0

Chúng không hoàn toàn giống nhau, datetime.now() chấp nhận một đối tượng múi giờ, trong khi datetime.today() chỉ cần gọi fromtimestamp (time.time()), và vì vậy hôm nay() sẽ luôn ở trong bất kỳ Python nào nghĩ múi giờ địa phương của bạn, trong khi bạn có thể nhận ngay bây giờ() để cho bạn biết những điều thú vị hơn một chút. –

11

Các câu trả lời khác cho câu hỏi này dường như đánh nó ngay tại chỗ. Bây giờ làm thế nào bạn sẽ tìm ra điều này cho chính mình mà không có tràn ngăn xếp? Kiểm tra IPython, một vỏ Python tương tác có tab tự động hoàn thành.

> ipython 
import Python 2.5 (r25:51908, Nov 6 2007, 16:54:01) 
Type "copyright", "credits" or "license" for more information. 

IPython 0.8.2.svn.r2750 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object'. ?object also works, ?? prints more. 

In [1]: import datetime 
In [2]: now=datetime.datetime.now() 
In [3]: now. 

nhân tab một vài lần và bạn sẽ được nhắc với các thành viên của "bây giờ" đối tượng:

now.__add__   now.__gt__   now.__radd__   now.__sub__   now.fromordinal  now.microsecond  now.second   now.toordinal   now.weekday 
now.__class__   now.__hash__   now.__reduce__  now.astimezone  now.fromtimestamp  now.min    now.strftime   now.tzinfo   now.year 
now.__delattr__  now.__init__   now.__reduce_ex__  now.combine   now.hour    now.minute   now.strptime   now.tzname 
now.__doc__   now.__le__   now.__repr__   now.ctime    now.isocalendar  now.month    now.time    now.utcfromtimestamp 
now.__eq__   now.__lt__   now.__rsub__   now.date    now.isoformat   now.now    now.timetuple   now.utcnow 
now.__ge__   now.__ne__   now.__setattr__  now.day    now.isoweekday  now.replace   now.timetz   now.utcoffset 
now.__getattribute__ now.__new__   now.__str__   now.dst    now.max    now.resolution  now.today    now.utctimetuple 

và bạn sẽ thấy rằng now.year là thành viên của đối tượng "now".

+2

Ngoài ra, điều này: http://docs.python.org/library/datatypes.html Nhưng cảm ơn bạn, tôi không biết rằng về IPython –

+2

Kudo cho giải quyết vấn đề * - bổ sung cho giải pháp thực tế. –

2

Nếu bạn muốn các năm từ (không rõ) datetime-đối tượng:

tijd = datetime.datetime(9999, 12, 31, 23, 59, 59) 

>>> tijd.timetuple() 
time.struct_time(tm_year=9999, tm_mon=12, tm_mday=31, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=4, tm_yday=365, tm_isdst=-1) 
>>> tijd.timetuple().tm_year 
9999 
Các vấn đề liên quan