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

大家讲道理
リリース: 2016-11-07 16:40:07
オリジナル
1164 人が閲覧しました

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).seconds
ログイン後にコピー

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 month (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 年間の週数 (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   
   return yesterday
ログイン後にコピー
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):   
        #今天减一天,一天一天减   
         today=today-oneday   
        #把日期转换成字符串   
        #result=datetostr(today)   
         li.append(datetostr(today))   
    return li   
  
#将字符串转换成datetime类型   
def strtodatetime(datestr,format):       
    return datetime.datetime.strptime(datestr,format)   
  
#时间转换成字符串,格式为2008-08-02   
def datetostr(date):     
    return    str(date)[0:10]   
  
#两个日期相隔多少天,例:2008-10-03和2008-10-01是相隔两天   
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   
  
#获取两个时间段的所有时间,返回list   
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 getYear():   
    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()   
  
print getToday()   
print getYesterday()   
print getDaysByNum(3)   
print getDays('2008-10-01','2008-10-05')   
print '2008-10-04 00:00:00'[0:10]   
  
print str(getYear())+getMonth()+getDay()   
print getNow()
ログイン後にコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!