ホームページ >バックエンド開発 >Python チュートリアル >Pythonの時間処理を詳しく解説
1. 現在時刻を取得する 2 つの方法:
import datetime, time
now = time.strftime("%Y-%m-%d %H:%M:%S")
print now
now = datetime.datetime.now()
print now
2. 先月の最終日の日付を取得します (今月の初日から 1 日を引いたもの)
last = datetime。 date (datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)
print last
3. 時差を取得します(時差の単位は秒です) 、計算プログラムの実行時間でよく使用されます)
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).秒
4 .現在時刻から10時間遡った時刻を計算します
d1 = datetime.datetime.now()
d3 = d1 + datetime.timedelta(hours=10)
d3.ctime()
よく使用される 2 つのクラスは、datetime と timedelta です。それらは互いに加算または減算できます。各クラスには、特定の値を表示するためのメソッドと属性があります。たとえば、datetime は日 (day)、時間 (hour)、曜日 (weekday()) などを表示します。 、秒 数字(秒)など。
5. Python での時刻と日付の書式設定記号:
%y 2 桁の年表現 (00-99)
%Y 4 桁の年表現 (000-9999)
%m月 (01-12)
%d 月の日 (0-31)
%H 24 時間形式の時間 (0-23)
%I 12 時間形式の時間 (01-12)
%M 分 (00=59)
%S 秒 (00-59)
%a ローカルの簡略化された週の名前
%A ローカルの完全な週の名前
%b ローカルの簡略化された月の名前
%Bローカルの完全な月名
%c ローカルで対応する日付表現と時刻表現
%j 年間の一日 (001-366)
%p ローカルで A.M. または P.M. に相当するもの
%U 1 年(00-53) 日曜日は週の始まりです
%w 曜日 (0-6)、日曜日は週の始まりです
%W 年の週の番号(00-53) 月曜日は週の始まりです 開始
%x ローカルで対応する日付表現
%X ローカルで対応する時間表現
%Z 現在のタイムゾーンの名前
%% % 数値自体
サンプル コードを添付します。
Actipro CodeHighlighter (フリーウェア) によって生成されたコードの強調表示 http://www.CodeHighlighter.com/-->#-*-coding:utf-8-*-
日付時刻、カレンダーをインポート
def getYesterday():
today=datetime.date .today()
oneday=datetime.timedelta(days=1)
Yesterday=today-oneday
昨日を返す
def getToday():
return datetime. date.today()
#指定されたパラメーターの過去数日間の日付を取得し、リストを返します
def getDaysByNum(num):
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
li= []
for i in range(0,num):
#今日マイナス 1 日、毎日マイナス
today=today-oneday
#日付を文字列に変換します #result=datetostr(today)
li.append(datetostr(today))
return li
#文字列を日時型に変換します
def strtodatetime(datestr,format):
return datetime.datetime.strp time(datestr,format)
#時刻を文字列に変換します。形式は 2008-08-02 です
def datetostr(date):
return str(date)[0 :10]
#2 つの日付の間は何日か、たとえば : 2008-10-03 と 2008-10-01 は 2 日離れています
def datediff(beginDate,endDate):
format="% Y-%m-%d";
bd=strtodatetime(beginDate,format )
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1)
count=0
while bd !=ed:
ed=ed-oneday
count+=1
return count
#2つの期間のすべての時間を取得してリストを返す
def getDays(beginDate,endDate):
format= "%Y-%m-%d";
bd=strtodatetime(beginDate,format)
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1)
num=datediff(beginDate,endDate)+1
li=[]
for i in range(0,num):
li.append(datetostr(ed))
ed=ed-oneday return li
#現在の年を文字列として取得します
def get Year( ):
return str(datetime.date.today())[0:4]
#現在の月を文字列として取得します
def getMonth():
return str(datetime.date.today( )) [5:7]
#現在の日付を文字列として取得します
def getDay():
return str(datetime.date.today())[8:10]
def getNow() :
return datetime.datetime.now()
2008-10-01','2008-10-05')
print '2008-10-04 00:00:00'[0:10]
print str(get Year())+getMonth()+getDay()
print getNow()