私は日付"10/10/11(m-d-y)"
を持っていて、Pythonスクリプトを使ってそれに5日を加えたいです。月末にも機能する一般的な解決策を検討してください。
私は以下のコードを使っています。
import re
from datetime import datetime
StartDate = "10/10/11"
Date = datetime.strptime(StartDate, "%m/%d/%y")
print Date
- >印刷中'2011-10-10 00:00:00'
今、私はこの日付に5日を追加したいです。私は以下のコードを使いました。
EndDate = Date.today()+timedelta(days=10)
これはこのエラーを返しました:
name 'timedelta' is not defined
前の答えは正しいですが、一般的にはそれを行うことをお勧めします。
import datetime
それから、 datetime.timedelta
を使用します。
date_1 = datetime.datetime.strptime(start_date, "%m/%d/%y")
end_date = date_1 + datetime.timedelta(days=10)
最初にtimedelta
をインポートしてください。
from datetime import timedelta
そしてDate.today()
は今日の日時を返します。
EndDate = Date + timedelta(days=10)
もしあなたがパンダをすでに使っているのなら、フォーマットを指定しないことで少しスペースを節約できます。
import pandas as pd
startdate = "10/10/2011"
enddate = pd.to_datetime(startdate) + pd.DateOffset(days=5)
私はあなたがそのような何かを逃していると思います:
from datetime import timedelta
dateutil's relativedeltaを使用して日付に日付を追加する別の方法を次に示します。
from datetime import datetime
from dateutil.relativedelta import relativedelta
print 'Today: ',datetime.now().strftime('%d/%m/%Y %H:%M:%S')
date_after_month = datetime.now()+ relativedelta(days=5)
print 'After 5 Days:', date_after_month.strftime('%d/%m/%Y %H:%M:%S')
出力:
今日:25/06/2015 15:56:09
5日後:2015年6月30日15:56:09
これは今から指定日数を取得する機能です。
import datetime
def get_date(dateFormat="%d-%m-%Y", addDays=0):
timeNow = datetime.datetime.now()
if (addDays!=0):
anotherTime = timeNow + datetime.timedelta(days=addDays)
else:
anotherTime = timeNow
return anotherTime.strftime(dateFormat)
使用法:
addDays = 3 #days
output_format = '%d-%m-%Y'
output = get_date(output_format, addDays)
print output
今すぐ日付を追加したい場合は、このコードを使用できます。
from datetime import datetime
from datetime import timedelta
date_now_more_5_days = (datetime.now() + timedelta(days=5) ).strftime('%Y-%m-%d')
冗長なコード を持ち、 名前の衝突 datetimeとdatetime.datetimeの間を避けるためには、クラスの名前を CamelCase namesに変更する必要があります。
from datetime import datetime as DateTime, timedelta as TimeDelta
それで、あなたは以下をすることができます、そして私はそれがより明確であると思います。
date_1 = DateTime.today()
end_date = date_1 + TimeDelta(days=10)
また、 名前の競合はありません 後でimport datetime
にしたい場合は/ /.
一般的にあなたは今答えを持っていますが、多分私が作成した私のクラスも役立つでしょう。私にとっては、Pyhonプロジェクトでこれまでに持っていたすべての要件を解決します。
class GetDate:
def __init__(self, date, format="%Y-%m-%d"):
self.tz = pytz.timezone("Europe/Warsaw")
if isinstance(date, str):
date = datetime.strptime(date, format)
self.date = date.astimezone(self.tz)
def time_delta_days(self, days):
return self.date + timedelta(days=days)
def time_delta_hours(self, hours):
return self.date + timedelta(hours=hours)
def time_delta_seconds(self, seconds):
return self.date + timedelta(seconds=seconds)
def get_minimum_time(self):
return datetime.combine(self.date, time.min).astimezone(self.tz)
def get_maximum_time(self):
return datetime.combine(self.date, time.max).astimezone(self.tz)
def get_month_first_day(self):
return datetime(self.date.year, self.date.month, 1).astimezone(self.tz)
def current(self):
return self.date
def get_month_last_day(self):
lastDay = calendar.monthrange(self.date.year, self.date.month)[1]
date = datetime(self.date.year, self.date.month, lastDay)
return datetime.combine(date, time.max).astimezone(self.tz)
使用方法
self.tz = pytz.timezone("Europe/Warsaw")
-ここで、プロジェクトで使用するタイムゾーンを定義しますGetDate("2019-08-08").current()
-これは、pt 1で定義したタイムゾーンで文字列の日付を時間対応オブジェクトに変換します。デフォルトの文字列形式はformat="%Y-%m-%d"
ですが、自由に変更できます。 (例:GetDate("2019-08-08 08:45", format="%Y-%m-%d %H:%M").current()
)GetDate("2019-08-08").get_month_first_day()
は、指定された日付(文字列またはオブジェクト)の月の最初の日を返しますGetDate("2019-08-08").get_month_last_day()
は、指定された日付、月、前日を返しますGetDate("2019-08-08").minimum_time()
は、指定された日付の開始日を返しますGetDate("2019-08-08").maximum_time()
は、指定された日付の日の終わりを返しますGetDate("2019-08-08").time_delta_days({number_of_days})
は指定された日付を返し、{日数}を追加します(昨日はGetDate(timezone.now()).time_delta_days(-1)
を呼び出すこともできます)GetDate("2019-08-08").time_delta_haours({number_of_hours})
pt 7に似ていますが、何時間も働いていますGetDate("2019-08-08").time_delta_seconds({number_of_seconds})
pt 7と似ていますが、秒単位で動作しますあなたができるtimedelta
sを使う:
import datetime
today=datetime.date.today()
time=datetime.time()
print("today :",today)
# One day different .
five_day=datetime.timedelta(days=5)
print("one day :",five_day)
#output - 1 day , 00:00:00
# five day extend .
fitfthday=today+five_day
print("fitfthday",fitfthday)
# five day extend .
fitfthday=today+five_day
print("fitfthday",fitfthday)
#output -
today : 2019-05-29
one day : 5 days, 0:00:00
fitfthday 2019-06-03