Java 这个日期是什么格式?[17/6/2015 5:50:22 5 -120]
上下文:从第三方数据源获取日期,如下所示。我正在使用Pig脚本将此字符串转换为日期 脚本:Java 这个日期是什么格式?[17/6/2015 5:50:22 5 -120],java,date,format,apache-pig,Java,Date,Format,Apache Pig,上下文:从第三方数据源获取日期,如下所示。我正在使用Pig脚本将此字符串转换为日期 脚本: a= LOAD '/user/hit_data.tsv' using PigStorage('\t'); b= FOREACH a GENERATE $0 as post_t_time_info; c= FOREACH b GENERATE ToDate(post_t_time_info,'DD/MM/YYYY HH:mm:ss e ZZZ') 日期对象采用的示例值: 17/6/2015 5:50
a= LOAD '/user/hit_data.tsv' using PigStorage('\t');
b= FOREACH a GENERATE $0 as post_t_time_info;
c= FOREACH b GENERATE ToDate(post_t_time_info,'DD/MM/YYYY HH:mm:ss e ZZZ')
日期对象采用的示例值:
17/6/2015 5:50:22 5 -120
17/6/2015 0:7:6 5 240
我无法理解什么是-120/240。我尝试了时区(ZZZ)和毫秒(SSS),但似乎不正确
我目前使用的格式是'DD/MM/YYYY HH:MM:ss e X',其中X未知,希望为其找到合适的模式
谢谢
参考:
很可能
-120
和240
确实是时区偏移。它们很可能是以分钟为单位,而不是以小时为单位。然而,这并没有标准,所以它可以是格林尼治标准时间以东几分钟,或者格林尼治标准时间以西几分钟
换句话说,-120
可以是UTC+02:00
,或者UTC-02:00
240
可以是UTC+04:00
,或者UTC-04:00
例如,如果它是从JavaScript的Date
对象的getTimezoneOffset
函数中获得的,则符号将与您可能期望的相反。它对西部具有正值,而通常的ISO8601公约对东部具有正值
由于您是获取数据的人,因此您在识别数据来源和消除歧义方面比我们处于更好的位置。如果是第三方提供的,请查看他们的规格,或者联系他们并询问
另外-您说您正在使用ApachePig,但是根据,ToDate函数使用Java的
SimpleDataFormat
-它没有使用与ICU相同的格式限定符,也没有识别以分钟为单位的时区偏移的格式限定符。您可能需要编写自己的函数,而不是只使用内置的ToDate
如何知道它不是时区偏移?如果使用ZZZ,我会收到错误“无效格式:”17/6/2015 1:15:43 5 240“在”240处格式错误“@CoDEmanX:时区偏移与模式Z不同吗?请让我知道上下文好吗?你在给重症监护室写信吗?ICU4C还是ICU4J?请用ICU和适当的语言标记您的问题。另外-您是说您编写了代码,当您使用该格式时会产生该输出?或者您只是想单独识别格式?请澄清。