相关疑难解决方法(0)

无法减去offset-naive和offset-aware datetimes

timestamptz在PostgreSQL中有一个时区感知字段.当我从表中提取数据时,我想立即减去时间,以便我可以得到它的年龄.

我遇到的问题是,无论是datetime.datetime.now()datetime.datetime.utcnow()似乎回到时区不知道时间戳,这导致我得到这个错误:

TypeError: can't subtract offset-naive and offset-aware datetimes 
Run Code Online (Sandbox Code Playgroud)

有没有办法避免这种情况(最好不使用第三方模块).

编辑:感谢您的建议,但是尝试调整时区似乎给了我错误..所以我只是在PG中使用时区不知道的时间戳并始终使用:

NOW() AT TIME ZONE 'UTC'
Run Code Online (Sandbox Code Playgroud)

这样我的所有时间戳都默认为UTC(尽管这样做更烦人).

python postgresql timezone datetime

271
推荐指数
9
解决办法
19万
查看次数

将DataFrame列类型从字符串转换为datetime

如何将字符串的DataFrame列(以dd/mm/yyyy格式)转换为日期时间?

python datetime-format dataframe python-datetime pandas

250
推荐指数
5
解决办法
34万
查看次数

在datetime和Pandas Timestamp对象之间转换

我有以下内容:

> date1
Timestamp('2014-01-23 00:00:00', tz=None)

> date2
datetime.date(2014, 3, 26)
Run Code Online (Sandbox Code Playgroud)

我读了这个答案我可以pandas.to_datetime()用来转换Timestampsdatetime对象,但它似乎不起作用:

> pd.to_datetime(date1)   
Timestamp('2014-01-23 00:00:00', tz=None)
Run Code Online (Sandbox Code Playgroud)

为什么?如何在这两种格式之间进行转换?

python datetime pandas

50
推荐指数
3
解决办法
7万
查看次数

在nthon中将numpy.datetime64转换为字符串对象

我无法将python datetime64对象转换为字符串.例如:

t = numpy.datetime64('2012-06-30T20:00:00.000000000-0400')
Run Code Online (Sandbox Code Playgroud)

成:

'2012.07.01' as a  string. (note time difference)
Run Code Online (Sandbox Code Playgroud)

我已经尝试将datetime64对象转换为datetimelong然后转换为字符串,但我似乎得到了这个错误:

dt = t.astype(datetime.datetime) #1341100800000000000L
time.ctime(dt)
ValueError: unconvertible time
Run Code Online (Sandbox Code Playgroud)

python datetime numpy date

41
推荐指数
5
解决办法
6万
查看次数

Pandas:将Timestamp转换为datetime.date

我有一个Pandas列的Timestamp数据

In [27]: train["Original_Quote_Date"][6] 
Out[27]: Timestamp('2013-12-25 00:00:00')
Run Code Online (Sandbox Code Playgroud)

如何检查这些对象与datetime.date该类型对象的等价性

datetime.date(2013, 12, 25)
Run Code Online (Sandbox Code Playgroud)

python datetime timestamp pandas

37
推荐指数
6
解决办法
8万
查看次数

日期时间转换 - 如何提取推断格式?

这是一组日期时间值:

array = np.array(['2016-05-01T00:00:59.3+10:00', '2016-05-01T00:02:59.4+10:00',
                  '2016-05-01T00:03:59.4+10:00', '2016-05-01T00:13:00.1+10:00',
                  '2016-05-01T00:22:00.5+10:00', '2016-05-01T00:31:01.1+10:00'],
        dtype=object)
Run Code Online (Sandbox Code Playgroud)

pd.to_datetime 非常擅长推断日期时间格式.

array = pd.to_datetime(array)

print(array)
DatetimeIndex(['2016-04-30 14:00:59.300000', '2016-04-30 14:02:59.400000',
               '2016-04-30 14:03:59.400000', '2016-04-30 14:13:00.100000',
               '2016-04-30 14:22:00.500000', '2016-04-30 14:31:01.100000'],
              dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

如何动态确定pd.to_datetime推断出的日期时间格式?有点像:( %Y-%m-%dT...抱歉,我的约会时间非常糟糕).

python datetime pandas

28
推荐指数
3
解决办法
2128
查看次数

如何将numpy datetime64转换为datetime

我基本上面对这里发布的相同问题:在datetime,Timestamp和datetime64之间转换

但我找不到令人满意的答案,我的问题是如何从numpy.datetime64类型中提取日期时间:

如果我尝试:

np.datetime64('2012-06-18T02:00:05.453000000-0400').astype(datetime.datetime)
Run Code Online (Sandbox Code Playgroud)

它给了我:1339999205453000000L

我当前的解决方案是将datetime64转换为字符串,然后再次转到datetime.但这似乎是一个非常愚蠢的方法.

python datetime numpy pandas

12
推荐指数
2
解决办法
5万
查看次数

在numpy(python)中将datetime字符串转换为datetime

我想转换

['17-10-2010 07:15:30', '13-05-2011 08:20:35', "15-01-2013 09:09:09"]
Run Code Online (Sandbox Code Playgroud)

进入Numpy日期时间对象.

import numpy as np
[np.datetime64(x) for x in ['17-10-2010 07:15:30', '13-05-2011 08:20:35', "15-01-2013 09:09:09"]] 
Run Code Online (Sandbox Code Playgroud)

提出来ValueError: Could not convert object to NumPy datetime.但是,以下按照我的意图工作

[np.datetime64(x) for x in ['2010-10-17 07:15:30', '2011-05-13 08:20:35', "2012-01-15 09:09:09"]] 
Run Code Online (Sandbox Code Playgroud)

我怎样才能将我的数组,与符合格式Numpydatetime64功能要求?

我使用Numpy版本1.7.0.在python 3.4中

datetime numpy python-3.x python-datetime pandas

10
推荐指数
1
解决办法
2万
查看次数

Numpy isnat()在datetime对象上返回值错误

一直在处理在datetime,Timestamp和datetime64之间转换中列出的选项; 但是,numpy的isnat()似乎无法识别日期时间对象,或者我错过了函数输入所需的其他类型的日期时间对象.

以下是数据框的概述:

>>> time_data.head()
     Date          Name               In AM              Out AM  \
0  2017-12-04  AUSTIN LEWIS 1900-01-01 07:03:11 1900-01-01 12:01:50   
1  2017-12-05  AUSTIN LEWIS 1900-01-01 05:24:07 1900-01-01 12:08:21   
2  2017-12-06  AUSTIN LEWIS 1900-01-01 11:58:32                 NaT   
3  2017-12-07  AUSTIN LEWIS 1900-01-01 08:31:23 1900-01-01 12:49:51   
4  2017-12-11  AUSTIN LEWIS 1900-01-01 06:55:21 1900-01-01 12:02:08   

            In PM              Out PM Sick Time  
0 1900-01-01 12:28:52 1900-01-01 17:34:53       NaT  
1 1900-01-01 12:35:12 1900-01-01 16:15:17       NaT  
2                 NaT 1900-01-01 23:59:01       NaT  
3 1900-01-01 13:18:34 1900-01-01 …
Run Code Online (Sandbox Code Playgroud)

python datetime numpy pandas

7
推荐指数
2
解决办法
1432
查看次数

如何在python中确定过去的时区特定日期是否为夏令时?

有没有办法在我指定的日期检查特定时区是否在夏令时?

    test_dt = datetime(year=2015, month=2, day=1)
    pst = pytz.timezone('America/Los_Angeles')
    test_dt = pst.localize(test_dt) 

    # should return False
    is_day_light_saving(test_dt)        
Run Code Online (Sandbox Code Playgroud)

python time timezone datetime

6
推荐指数
1
解决办法
3140
查看次数