我需要增加日期时间值的月份
next_month = datetime.datetime(mydate.year, mydate.month+1, 1)
Run Code Online (Sandbox Code Playgroud)
当月份为12时,它变为13并且引发错误"月份必须在1..12".(我预计这一年会增加)
我想使用timedelta,但它不需要一个月的论点.有relativedelta python包,但我不想只为此安装它.还有使用strtotime的解决方案.
time = strtotime(str(mydate));
next_month = date("Y-m-d", strtotime("+1 month", time));
Run Code Online (Sandbox Code Playgroud)
我不想将datetime转换为str然后转换为time,然后转换为datetime; 因此,它仍然是一个图书馆
有没有人像使用timedelta一样有任何好的和简单的解决方案?
我想在当前时间后10分钟找出日期时间.让我们说我们有
from datetime import datetime
now = datetime.now()
new_now = datetime.strptime(now, '%a, %d %b %Y %H:%M:%S %Z')
Run Code Online (Sandbox Code Playgroud)
我想找到这now和new_now后来10分钟.我怎样才能做到这一点?
我正在寻找的是可以将"明天早上6点"或"中午的下一个模拟"转换为适当的日期时间对象.
所以我试图找到一种方法将datetime对象增加一个月.然而,根据这个问题,似乎并非如此简单.
我希望有类似的东西:
import datetime as dt
now = dt.datetime.now()
later = now + dt.timedelta(months=1)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我也希望能够在下个月(如果可能的话)去同一天(或最接近的替代方案).例如,DateTime对象定在1月1日将递增到2月1日,而设定在2月28日期时间对象将递增到3月31日,而不是3月28日或东西.
需要明确的是,2月28日将(通常)映射到3月31日,因为它是该月的最后一天,因此它应该到下个月的最后一天.否则它将是一个直接链接:增量应该在下一个月的日期与相同的编号日.
在当前版本的Python中有没有一种简单的方法可以做到这一点?
我正在阅读Python文档中的赋值语句(http://docs.python.org/reference/simple_stmts.html#assignment-statements).
因此引用:
如果目标是括在括号中或方括号中的目标列表:对象必须是与目标列表中的目标具有相同数量的项目的可迭代对象,并且其项目从左到右分配给相应的目标.
读完之后,我想写一个这样的样本:
a = 5
b = 4
a, b = a + b, a
print a, b
Run Code Online (Sandbox Code Playgroud)
我的假设是a和b都应该具有9的值.
但是,我被证明是错的.'a'的值为9,'b'的值为5.
有人可以帮助我更好地理解这一点吗?为什么要分配旧值'a'而不是新值?根据文档,首先会分配一个值?我错过了什么吗?
我正在尝试根据一个日期列删除数据帧的行; [Delivery Date]
我需要删除超过6个月但不等于'1970'年份的行.
我创建了2个变量:
from datetime import date, timedelta
sixmonthago = date.today() - timedelta(188)
import time
nineteen_seventy = time.strptime('01-01-70', '%d-%m-%y')
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用[Delivery Date]列来删除基于这两个变量的行.
有人能提供正确的解决方案吗?
我想使用Python解析如下所示的自由文本时间间隔:
有没有一种无痛的方法可以做到这一点,理想情况下只需调用一个库函数?
我试过了:
dateutil.parser.parse(),它可以理解几小时而不是几天或更长时间.mx.DateTime.DateTimeDeltaFrom(),它可以通过几天了解,但在数周或更长的时间内失败,并且默默地(例如,它可能会创建一个长度为0的区间,或者将"2个月"解析为2分钟).我想在给定日期添加一个月
import datetime
dt = datetime.datetime(year=2014, month=5, day=2)
Run Code Online (Sandbox Code Playgroud)
所以我应该得到
datetime.datetime(year=2014, month=6, day=2)
Run Code Online (Sandbox Code Playgroud)
但随着
dt = datetime.datetime(year=2015, month=1, day=31)
Run Code Online (Sandbox Code Playgroud)
我应该得到
datetime.datetime(year=2015, month=3, day=1)
Run Code Online (Sandbox Code Playgroud)
因为没有2015-02-31(而且我希望我的结果在一天之后回合)
有些月份有31天,有些月份有30天,有些是29天,有些是28天!
所以添加一个datetime.timedelta可能不是一个好的做法(因为我们不知道要添加的天数)
我注意到熊猫有一个有趣的概念 DateOffset
http://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects
但我没有找到Month偏移,只是MonthBegin或MonthEnd
我也看到这篇文章 如何使用datetime Python模块计算当前日期六个月的日期?
所以我试过dateutil.relativedelta但是
from dateutil.relativedelta import relativedelta
datetime.datetime(year=2015, month=1, day=31)+relativedelta(months=1)
Run Code Online (Sandbox Code Playgroud)
回报
datetime.datetime(2015, 2, 28, 0, 0)
Run Code Online (Sandbox Code Playgroud)
所以结果在前一天得到了结果.
是否有(干净)的方式来圆天之后?
编辑:我给了一个例子,一个月要添加,但我也希望能够添加例如:2年零6个月(使用一个relativedelta(years=2, months=6))
我希望在约会后的某个月找到,但我不知道如何.
让我说我有这个日期:
08.03.2012
Run Code Online (Sandbox Code Playgroud)
我想在一个月后的那个日期自动找到:
08.04.2012
Run Code Online (Sandbox Code Playgroud)
有谁知道这是怎么做到的吗?
我需要创建一个日期变量来存储当前日期,并且我需要另一个变量来存储截止日期(天+ 1 个月),但我似乎做错了一些事情。
import datetime
day = datetime.date.today()
deadline = datetime.date.today()
deadline.month += 1
print(day)
print(deadline)
Run Code Online (Sandbox Code Playgroud) 我想在 python 中计算日期前 6 个月。那么日期(例如 8 月 31 日)是否会出现任何问题。我们可以使用 timedelta() 函数解决这个问题。我们可以通过像date=now - timedelta(days=days ) 这样的月份吗? )而不是争论天。
我想选择过去 4 个月的数据。我想从月初开始,所以如果现在是 7 月 28 日,我需要 3 月 1 日至 7 月 28 日的数据。
目前我使用 DateOffset,我意识到它正在调用 March28-July28 并遗漏了我的很多数据。
df = pd.read_csv('MyData.csv')
df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])
#Only retrieve data before now (ignore typos that are future dates)
mask = df['recvd_dttm'] <= datetime.datetime.now()
df = df.loc[mask]
# get first and last datetime for final week of data
range_max = df['recvd_dttm'].max()
range_min = range_max - pd.DateOffset(months=4)
# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) &
(df['recvd_dttm'] <= range_max)] …Run Code Online (Sandbox Code Playgroud) 这基本上是一种算法:
对不起,如果有人不理解,我会尝试重新解释,如果没有人得到它.