在Python中将日期时间对象作为字符串调用

时间:2018-07-10 15:15:20

标签: python pandas datetime

我在Python中有一个slice函数,可以对诸如“ 1960-01-01”之类的日期进行切片。我试图分配变量以使代码通用,但是,当数据不是这样调用时:

calibration_period = slice('1960-01-01', '2000-12-31')
validation_period = slice('2001-01-01', '2014-12-31')

并称呼为:

calibration_period = slice(Base, Date[-1])
validation_period = slice(Date2[0],Date2[-1])

最后一个值读取为2014-12-31 00:00:00,但我想将其读取为“ 2014-12-31”,因此计算将一直持续到2014-12-31 23:00:00 。

我使用了这个:

from datetime import datetime
t=pd.to_datetime(str(Date2[-1]))
strg=t.strftime('%Y-%m-%d')

尽管打印功能将其显示为2014-12-31,但用于验证的打印仍为:

slice(numpy.datetime64('2001-01-01T00:00:00.000000000'), Timestamp('2014-12-31 00:00:00'), None)

如果有人提出建议,我将非常感谢。

2 个答案:

答案 0 :(得分:0)

可能有帮助

>>> from datetime import datetime
>>> d = datetime.utcnow()
>>> d.date()
datetime.date(2018, 7, 10)
>>> str(d.date())
'2018-07-10'

答案 1 :(得分:0)

我认为问题在于您混淆了日期时间格式和字符串格式。

#include <FileToMyFunc.h>
#include "gtest/gtest.h"
#include <stdafx.h>

TEST(test1, test2) {    EXPECT_EQ(myfunc(...), CString("2012-05-07")); }

from datetime import datetime
time = datetime.strptime('01/01/2010', '%d/%m/%Y')
newtime = datetime.strftime(time, '%d/%m/%Y')

print(time, newtime)

使用datetime.strftime将日期时间转换为具有所需格式的字符串,然后可以使用逻辑进行计算,即:

使用以下值的日期时间对象为2010-01-01 23:30:00始终将转换为类型为2010-01-01的字符串。

2010-01-01 00:00:00 01/01/2010
Press any key to continue . . .

然后可以对两个字符串执行逻辑

value = datetime.strftime(value, '%Y-%m-%d')

完整示例:

if value == newtime:
    print(value)

from datetime import datetime
time = datetime.strptime('01/01/2010 20:30:30', '%d/%m/%Y %H:%M:%S')
newtime = datetime.strftime(time, '%d/%m/%Y')

print(time)
print(newtime)