ホームページ  >  記事  >  バックエンド開発  >  Pythonの時間処理を詳しく解説

Pythonの時間処理を詳しく解説

高洛峰
高洛峰オリジナル
2016-10-18 09:06:28975ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。