标签: iso8601

解析DateFormat时的Java时区

我有解析日期的代码如下:

String ALT_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
SimpleDateFormat sdf = new SimpleDateFormat(
                    ALT_DATE_TIME_FORMAT);
Date date = sdf.parse(requiredTimeStamp);
Run Code Online (Sandbox Code Playgroud)

它工作正常,突然,这停止了工作.事实证明,管理员在服务器上进行了一些配置更改,并且当前正在返回日期为"2010-12-27T10:50:44.000-08:00",这是上述模式无法解析的.我有两个问题:

第一个是什么模式将以上述格式解析JVM返回的日期(具体来说,只是'-08:00'作为时区)?第二,在Linux RHEL 5服务器上究竟会改变这样的设置,以便我们在将来意识到这些变化?

java timezone datetime iso8601 date-format

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

使用JavaScript转换ISO 8601持续时间

如何使用JavaScript转换持续时间,例如:

PT16H30M

javascript iso8601

10
推荐指数
4
解决办法
6764
查看次数

ISO 8601持续时间,以毫秒为单位?

如何使用ISO 8601表达500毫秒的持续时间?对我来说,文档并非100%明确.它只是"PT0.5S"吗?

time duration iso8601

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

在java中将iso8601日期转换为unix时间戳

我有一个日期字符串

   String s = "2014-09-01T19:22:43.000Z";
  Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse(s);
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:

Exception in thread "main" java.text.ParseException: Unparseable date: "2014-09-01T19:22:43.000Z"
Run Code Online (Sandbox Code Playgroud)

如何将上面的字符串转换为unix时间戳?谢谢

java datetime iso8601

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

Javascript 的 `Date.prototype.toISOString` 的 Python 等价物是什么?

在 Javascript 中,Date.prototype.toISOString给出 ISO 8601 UTC 日期时间字符串:

new Date().toISOString()
// "2014-07-24T00:19:37.439Z"
Run Code Online (Sandbox Code Playgroud)

是否存在行为与 Javascript 相匹配的 Python 函数?


尝试:

Python 的datetime.datetime.isoformat类似,但不完全相同:

datetime.datetime.now().isoformat()
// '2014-07-24T00:19:37.439728'
Run Code Online (Sandbox Code Playgroud)

使用pytzI 至少可以使 UTC 明确:

pytz.utc.localize(datetime.now()).isoformat())
// '2014-07-24T00:19:37.439728+00:00'
Run Code Online (Sandbox Code Playgroud)

python iso8601

9
推荐指数
2
解决办法
7869
查看次数

java.time.ZonedDateTime.parse和iso8601?

为什么JDK8 DateTime库似乎无法解析有效的iso8601日期时间strings?它在时区偏移上窒息,表示为"+01"而不是"+01:00"

这有效:

java.time.ZonedDateTime.parse("2015-08-18T00:00+01:00")
Run Code Online (Sandbox Code Playgroud)

这会抛出一个解析异常:

java.time.ZonedDateTime.parse("2015-08-18T00:00+01")
Run Code Online (Sandbox Code Playgroud)

来自iso8601维基百科页面:

与UTC的偏移量以与"Z"相同的方式附加到时间,格式为±[hh]:[mm],±[hh] [mm]或±[hh].因此,如果描述的时间比UTC早一个小时(例如冬季柏林的时间),则区域指示符将为"+01:00","+ 0100"或简称为"+01".

编辑:这看起来像JDK中的实际合法错误.

https://bugs.openjdk.java.net/browse/JDK-8032051

哇,经过多年测试新的日期时间后,我认为他们会发现一些如此明显的东西.我还认为JDK作者类型非常严格,可以使用更好的自动化测试套件.

更新:这在当前的jdk-9版本中完全修复.我刚刚确认了.上面显示的完全相同的解析命令在当前的jdk-8构建中失败,并且在jdk-9中完美地工作.

附录:FWIW,基于ISO-8601的RFC 3339,不允许这个简写.您必须在时区偏移中指定分钟.

java iso8601 java-8

9
推荐指数
2
解决办法
8989
查看次数

ISO 8601,毫秒和Retrofit

在使用改造并尝试读取这样的日期时,我无法正确设置日期格式:

2015-08-29T11:22:09.815479Z
Run Code Online (Sandbox Code Playgroud)

我设置的GSON转换器是这样的:

GsonConverter gsonConverter = new GsonConverter(
     new GsonBuilder()
            .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSz")
            .create()
);
Run Code Online (Sandbox Code Playgroud)

什么问题的线索?

java android date iso8601 gson

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

了解特定的UTC时间格式YYYY-MM-DDTHH:MM:SS.SSSZ

我有两个相关的问题.

假设在BST中运行的程序以UTC格式生成当前时间的日期时间值YYYY-MM-DDTHH:MM:SS.SSSZ格式

同时假设伦敦当前时间是2016-06-01 12:33:54

1)如果程序给出的当前时间是2016-06-01T11:33:54.000Z,程序错了吗?

2)如何在YYYY-MM-DDTHH的相应时间格式中记录BST的夏季偏移:MM:SS.SSSZ

我假设YYYY-MM-DDTHH:MM:SS + 0001我是否正确?

java utc iso8601 gmt

9
推荐指数
1
解决办法
3万
查看次数

JSON 中 Duration 的好格式是什么?

我意识到 JSON 没有真正的日期格式,考虑到 JavaScript 使用的是 ISO 8601,因此使用 ISO 8601 是一个不错的选择。持续时间呢?JavaScript 没有内置格式。

  1. 我遇到了ISO 8601 持续时间,例如P3Y6M4DT12H30M5S我在野外没有看到太多使用。它看起来也非常冗长且难以阅读。据我所知,如果您需要,它也不支持毫秒。
  2. 我正在使用 C#,其TimeSpan类型输出1.02:03:04.0050000为 1 天、2 小时、3 分钟、4 秒和 5 毫秒。
  3. 我可以使用秒数或毫秒数作为整数。这完全是机器可读的,如果您使用秒或毫秒而不标记值,这并不明显。

我几乎从未见过野外的第一种格式。第二个对我来说似乎更直观,但我担心它在 .NET 之外并不为人所知。第三种格式可能是最跨平台友好的,但完全不是人类可读的。

.net time timespan duration iso8601

9
推荐指数
1
解决办法
4545
查看次数

如何在 Rust 中将 SystemTime 转换为 ISO 8601?

我有一个SystemTime变量,我想从那个日期获得 ISO 8601 格式。

iso8601 datetime-format rust

9
推荐指数
3
解决办法
2126
查看次数