web-dev-qa-db-ja.com

Pythonで現在の時刻を取得し、年、月、日、時、分に分ける方法は?

Pythonで現在の時刻を取得し、それらをyearmonthdayhourminuteのような変数に割り当てます。 Python 2.7でこれをどのように行うことができますか?

203
user781486

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オブジェクトの属性に必要なものがすべて揃っています。

352
tzaman

上記のdatetimeの答えはずっときれいですが、元のpythonの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]
23
vossman77

これは最大80文字の行のすぐ下に入ってくるワンライナーです。

import time
year, month, day, hour, minute = time.strftime("%Y,%m,%d,%H,%M").split(',')
20
rigsby

Datetimeオブジェクトのtimetupleを解凍することで、欲しいものが手に入ります:

from datetime import datetime

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

Python 3の場合

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
5
import time
year = time.strftime("%Y") # or "%y"
3
xiaoweiz

現在の時刻から日、月、年をPythonで取得して印刷する方法を見てみましょう。

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
3
Tomer Ben David

あなたは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に渡すことができます。デフォルトはtime()によって返される現在時刻です。

eg.
gmtime(1521174681)

struct_time を参照してください。

2
Sreeragh A R

日付と時刻にアクセスして操作するための3つのライブラリ、すなわちdatetime、arrow、およびpendulumはすべてこれらの項目をnameまたはindexのいずれかによって要素にアクセスできる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
Bill Bell

これは古い質問ですが、他の人が好むと思う解決策を思いついたのです。

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()は、ラベル付きタプルを作成する別の配列で圧縮することができます。それを辞書にキャストすれば、結果の製品はget_current_datetime_as_dict()['year']で消費されます。

これはここで他の解決策のいくつかよりもう少しオーバーヘッドがあります、しかし私はそれがコードのclartiyのために名前付きの値にアクセスすることができるのはとても素敵であるとわかりました。

1
TopherGopher