我正在尝试查询SoftLayer审核日志(SoftLayer_Event_Log)数据。我正在应用基于日期戳的对象过滤器,但过滤器忽略了时区感知日期戳。
代码片段来自Python。
对象过滤器:
{u'eventCreateDate': {u'operation' : u'betweenDate',
u'options' :
[
{u'name' : u'startDate',
u'value' : ['2016-02-25T19:21:53.796725+00:00']},
{u'name' : u'endDate',
u'value' : ['2016-02-25T20:13:40.507255+00:00']}
]
}
}
结果:
{'accountId' : 654321,
'eventCreateDate' : '2016-02-25T19:39:10.794659-06:00',
'eventName' : 'Login Successful',
'ipAddress' : '5.6.7.8',
'label' : 'username',
'objectId' : 123456,
'objectName' : 'User',
'traceId' : 'redacted',
'userId' : 123456,
'userType' : 'CUSTOMER',
'username' : 'username'}
{'accountId' : 654321,
'eventCreateDate' : '2016-02-25T19:39:01.567608-06:00',
'eventName' : 'Login Failed',
'ipAddress' : '1.2.3.4',
'label' : 'username',
'objectId' : 123456,
'objectName' : 'User',
'traceId' : 'redacted',
'userId' : '',
'userType' : 'SYSTEM'}
...etc...
结果数据肯定在时间规范内,但不在指定的时区内。
答案 0 :(得分:0)
对象过滤器忽略时区,它只过滤存储在数据库中的日期。如果没有错,数据库中的日期将存储在达拉斯时区,因此您必须更改开始日期和结束日期,同时考虑用户时区与数据库中存储的时区之间的差异。