• WebCamp_インタビュー
    【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!
    2018.01.15
  • WebCampPro_インタビュー
    未経験でも寿司職人からWebデザイナーになった!ホスピタリティでスクールを支える宮脇トレーナー
    2017.05.26
  • WebCamp_インタビュー
    時間や場所にとらわれず自由に働くために必要なスキルとは?【WebCamp卒業生インタビュー】
    2018.01.26
  • WebCamp_インタビュー
    「自信の持てるスキルを得たい!」内定辞退した女子大生がプログラミングを学習したワケ。
    2018.04.28
  • WebCampPro_インタビュー
    自分で稼ぐ力をつけるため、新卒5年目の営業マンがエンジニアに転職!【WebCampPro転職者インタビュー】
    2018.02.02
  • WebCamp_インタビュー
    【WebCamp受講生インタビュー】起業準備中にCEOが気がついたプログラミングスキルの重要性とは?
    2017.12.25
  • WebCamp_インタビュー
    「1カ月頑張ればこの先が見えてくる」地元メディアを立ち上げたママさん
    2017.07.20
  • WebCamp_インタビュー
    【卒業生インタビュー】台湾で月間100万UUの訪日旅行メディアを手掛けるCEOが、プログラミングを学んで得たものとは?
    2018.01.15
  • WebCampPro_インタビュー
    未経験31歳からエンジニア転職を実現【実際に聞いてみた】
    2017.04.01
  • WebCampPro_インタビュー
    未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】
    2018.03.10
  • WebCamp_インタビュー
    “未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
    2017.10.04

◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

pythonでシステムを作る際に日付を扱うことは多いです。

例えば病院のシステムであれば、予約の日時を取る為や診療録としての日付の登録などです。

身近なところでは、最近流行りのInstagramなどでも「投稿した日時」が使わています。

今回はPythonの日付操作の基本から応用までを徹底解説していきます。

日付の基本について

日付の基本から解説していきます。

まずはPythonで日付操作をする為の準備として、datetimeの学習を始めていきます。

 datetimeについて

datetimeはPythonモジュールの1つで、日付や時刻などに特化したモジュールです。

Pythonの実行環境さえ整っていれば、別途何かを準備する必要はありません。

 datetimeの使用例

datetimeの具体的な使用例について、解説していきます。

まずdatetimeを利用する為に、下記コードを最初に記述する必要があります。


import datetime

datetimeを利用する準備はこれで完了です。


日付の取得方法

datetime基本中の基本の日付取得方法について、解説していきます。

日付は現在の日付だけでなく、年・月・日・時・分・秒など個別に取得することも出来ます。

具体的な記述方法は、下記になります。

#datetimeのインポート
import datetime
#現在の日時取得 
ima = datetime.datetime.now()
print(ima)
#現在の年取得 
nen = ima.year
print(nen)
#現在の月取得 
tuki = ima.month
print(tuki)
#現在の日取得 
hi = ima.day
print(hi)
#現在の時取得 
zi = ima.hour
print(zi)
#現在の分取得 
fun = ima.minute
print(fun)
#現在の秒取得 
byou = ima.second
print(byou)
#現在のマイクロ秒取得 
mbyou = ima.microsecond
print(mbyou)
#実行結果
2018-06-09 20:44:54.843275
2018
6
9
20
44
54
843275

システムのログなどの場合は、「datetime.datetime.now()」で現在の日時取得を行い、後は必要に応じて年・月・日・時間を取得して利用します。

基本的には秒まで利用することが多いですが、マイクロ秒まで利用することもある為、可能であればこの機会に習得することをおすすめします。

日付の曜日取得方法

日付の取得で既に気になられている方も多いと思いますが、日付とセットで重要なのが曜日です。

日付と同様にシステムを開発する際に、曜日毎の処理を仕様に入れることは、決して少なくはありません。

曜日の取得方法は、下記になります。


#datetimeのインポート

import datetime

#現在の日時取得

ima = datetime.datetime.now()
#曜日取得
youbi = ima.weekday()

print(youbi)
#実行結果
5

実行結果では、曜日は「5」と出力されています。

これでは意味がわかりませんよね。

Pythonの実行環境がある方は、1度上記ソースコードをコピーして、実行してみて頂ければわかると思いますが、結果は0~6の数字が出力されます。

weekday()は、月曜日が0で始まり日曜日が6で終わります。

つもり、上記ソースコードは5なので土曜日に実行していることになります。

日本語や英語として出力する場合は、if分などで戻り値から出力する必要があります。

もちろん曜日を出力する必要がなければ、該当する戻り値から処理を記述すれば問題ありません。

日付の計算について

現在の日時取得と曜日取得については、解説しましたが、実際システム開発を行う場合、現在の日付取得と曜日取得だけでは完全とは言えません。

数日後や数ヶ月後などの日付の加算や差分を計算する処理が必要不可欠です。

日付加算について

日付計算の基本として、日付加算から解説していきます。

日付加算を行うには、datetime.timedeltaを利用します。

datetime.timedeltaの記述方法は、下記になります。



現在の日付を格納した変数 +または-datetime.timedelta(days = 加算または減算する数値)




日付加算の使用例

それでは実際に日付加算の使用例について、ご紹介していきます。

 #datetimeのインポート

import datetime

#現在の日時取得

ima = datetime.datetime.now()

#10日後

toukago = ima + datetime.timedelta(days=10)

print(toukago)

#3日前

mikkamae = ima - datetime.timedelta(days=3)

print(mikkamae)

#実行結果

2018-06-19 20:44:54.843275

2018-06-06 20:44:54.843275

上記以外にも1週間単位や時間単位も引数を変更することで、加算減算することが可能です。

日付差分について

日付差分について 実際にシステム開発を行う場合、必ずしも現在の日付を中心にしないことも少なくありません。

例えば特定の日から特定の日までの日付差分です。

当然Pythonでも日付差分を出すことは簡単に抽出することが出来ます。

日付差分を抽出する記述方法は、下記になります。

 (比較する日付-比較する日付).days 

前部分の比較する日付の方が大きい日付にするのが重要です。

日付差分の使用例

日付差分の使用例は、下記になります。

import datetime
hikaku1 = datetime.date(2018, 1, 1)
hikaku2 = datetime.date(2018, 6, 9)
result = (hikaku2-hikaku1).days
print(result)
#実行結果
159

実行結果として159と出力されます。

単位としては日付で、比較開始日の当日が含まれていない為、必要に応じて1日追加するか開始日を前日からに設定するのがおすすめです。

日付の比較について

日付差分と同様に比較演算子を利用して、日付同士の比較をすることも可能です。

日付の比較記述方法は、下記になります。


比較する日付 比較演算子 比較する日付

日付比較の使用例

日付比較の使用例は、下記になります。

import datetime
hikaku1 = datetime.date(2018, 1, 1)
hikaku2 = datetime.date(2018, 6, 9)

#比較する日付同士が等しい

result1 = hikaku1 == hikaku2

print(result1)

#比較する日付同士が等しくない

result2 = hikaku1 != hikaku2

print(result2)

#hikaku1がhikaku2より大きい
result3 = hikaku1 > hikaku2
print(result3)

#実行結果

False

True

False

比較演算子ですので、判定としてTrueとFalse出力されています。

実際にシステムを作る際は、日付の比較はif文の制御などで利用します。

繰り返しの日付処理について

日付の繰り返し処理について、解説していきます。

日付ループの基本について

日付のループ処理の基本についてですが、特別な記述方法があるのではなく、ここまでで解説している日付取得や日付比較を応用して繰り返し処理をすることになります。

日付のループ処理としてよく利用されるものを使用例に記載しておきます。

日付ループの使用例

それでは日付ループでよく使用される例は、下記になります。

#datetimeのインポート
import datetime
hi = datetime.date(2018, 1, 1)

for x in range(10):
print(hi)
hi = hi + datetime.timedelta(days=1)
#実行結果
2018-01-01
2018-01-02
2018-01-03
2018-01-04
2018-01-05
2018-01-06
2018-01-07
2018-01-08
2018-01-09

非常にシンプルな内容ですが、for文と日付型のデータの使用例です。

しかしシンプルだからこそ、日付の繰り返し処理の多くは、これに近い形で実装できる物も少なくありません。

日付のフォーマットについて

文字列として入力されたデータの場合、今回解説した日付処理を行うことができません。

そこで文字列を日付型にフォーマットする方法について、解説していきます。

文字列の日付フォーマットについて

文字列として入力されたデータを日付型にフォーマットする記述方法は、下記になります。


datetime.datetime.strptime(日付型にする文字列, '%Y-%m-%d')

#または

datetime.datetime.strptime(日付型にする文字列, '%Y/%m/%d %H:%M:%S')

文字列の中に日付まで格納されているか、それとも時刻まで登録されているか等によって引数が変わってきます。

文字列の日付フォーマット使用例

文字列日付フォーマットの使用例は、下記になります。


import datetime
moziretu = '2018-1-1'
#文字列を日付にフォーマット
cmoziretu = datetime.datetime.strptime(moziretu, '%Y-%m-%d')
print(cmoziretu)
#フォーマットされた日付型に1日追加して出力
cmoziretu = cmoziretu + datetime.timedelta(days=1)
print(cmoziretu)

#実行結果

2018-01-01 00:00:00
2018-01-02 00:00:00

文字列のままでは1日追加した時点でエラーになりますが、文字列から日付型へのフォーマットが出来ていることにより、1日追加された日付が出力されています。

まとめ

今回はPythonの日付について、解説してきましたが、いかがでしたか。

文字列型や数値型と同じく日付型のデータは、システムを開発していく上で避けては通れない内容の1つです。

開発するシステムの種類にもよりますが、基本となる日付処理は今回解説した内容になります。

是非、日付処理を習得してPythonプログラマーとしてステップアップして頂ければと思います。

WebCamp・WebCamp Proについて

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。WebCamp Proは3ヶ月間で未経験から即戦力エンジニアを育成するプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

12月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
11月受入枠は満員となっております。12月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

関連キーワード
学習の関連記事
  • 【誰でもわかる!】エンジニアの仕事内容を徹底解説
  • 初心者でも一瞬でわかるプログラミングの考え方・思考法
  • エンジニア必見!エンジニアが成長できるブログ紹介
  • エンジニアとは?仕事内容、年収、将来性を徹底解説
  • 【Rails入門説明書】find、find_byについて解説
  • プログラミング未経験者でも出来る開発環境構築
おすすめの記事
キャリア
IT企業に長い期間務めて方のほとんどが、時折自分の市場価値や実力を試したくなるときがあるといいます。 その場合、今自分が務めている会社より大...