问题标签 [datetimeformatter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - DateTimeFormatter 模式问题
我正在编写一个股票程序,该程序(到目前为止)通过如下请求从“Markit on Demand”获取数据:
http://dev.markitondemand.com/Api/v2/Quote/xml?symbol=aapl
这将返回 xml 中的数据,以及股票的各种度量(符号、名称、最后价格、变化、时间戳等)。
我无法在 Java 8 中创建 DateTimeFormatter 来制作时间戳。
时间戳的一个示例:
Fri Jul 18 15:59:00 UTC-04:00 2014
到目前为止,我的模式如下:
EEE MMM d HH:mm:ss OOOO yyyy
我相信你们中的一些人可以发现,我在偏移方面遇到了麻烦。
从文档:
偏移量 X 和 x:这会根据模式字母的数量来格式化偏移量。一个字母仅输出小时,例如“+01”,除非分钟不为零,在这种情况下也会输出分钟,例如“+0130”。两个字母输出小时和分钟,不带冒号,如'+0130'。三个字母输出小时和分钟,带有冒号,例如'+01:30'。四个字母输出小时和分钟以及可选的秒,不带冒号,例如'+013015'。五个字母输出小时和分钟以及可选的秒,带有冒号,例如'+01:30:15'。六个或更多字母会引发 IllegalArgumentException。当要输出的偏移量为零时,模式字母'X'(大写)将输出'Z',而模式字母'x'(小写)将输出'+00','
偏移量 O:这会根据模式字母的数量格式化本地化偏移量。一个字母输出本地化偏移量的简写形式,即本地化偏移量文本,例如“GMT”,小时不带前导零,如果非零,则可选两位数分钟和秒,以及冒号,例如“GMT+8” '。四个字母输出完整形式,即本地化偏移文本,例如“GMT”,带有 2 位小时和分钟字段,如果非零,则可选第二个字段和冒号,例如“GMT+08:00”。任何其他字母计数都会引发 IllegalArgumentException。
偏移 Z:这会根据图案字母的数量来格式化偏移。一个、两个或三个字母输出小时和分钟,不带冒号,例如'+0130'。当偏移量为零时,输出将为“+0000”。四个字母输出本地化偏移的完整形式,相当于四个字母的Offset-O。如果偏移量为零,则输出将是相应的本地化偏移量文本。五个字母输出小时、分钟,如果非零,则可选秒,带冒号。如果偏移量为零,则输出“Z”。六个或更多字母会引发 IllegalArgumentException。
这行得通,但我很好奇为什么(代替'UTC'XXX)OOOO
不起作用。
java - 为什么Java的 java.time.format.DateTimeFormatter#format(LocalDateTime) 加一年?
这是代码:
这是 的值localDateTime
:
这是 的值output
:
为什么要加一年?
有java.time.temporal.WeekFields
几种方法有时会newYearWeek
增加年份1
。为什么?
这是一个奇怪的错误。
java - 使用 DateTimeFormatter ofPattern 解析日期
我正在尝试使用 解析包含日期和时间的字符串java.time.format.DateTimeFormatter
(我的最终目标是将此字符串中的日期转换为java.time.LocalDate
)。
尝试解析日期时,我不断收到 DateTimeParseExceptions。有人可以帮忙吗?
日期格式为“2015-07-14T11:42:12.000+01:00”。
我尝试了 ofPattern 的不同变体,例如尝试通过用单引号将 T 括起来(如上所述)来逃避它,并对 . 我已经尝试同时逃避两者。
冒号也需要转义吗?
感谢您对此的任何帮助。
java - Java 8 DateTimeFormatter 在为零时丢弃毫秒?
这似乎很奇怪。Java 8 根据毫秒是否为零来格式化输出。您如何强制 Java 8 (1.8.0_20) 始终吐出毫秒,无论它们是否为零?
java - 如何创建正确的 DateTimeFormatter 模式
我正在尝试使用模式创建一个 DateTimeFormatter 对象以适应此时间表达式:2016-07-22T00:00:00.000-05:00。我正在尝试使用带有上述输入字符串的 DateTimeFormatter 类创建一个 DateTime 对象。
我尝试了以下表达式的许多不同版本,但目前卡在时区片段“-05:00”,在我的 junit 测试用例中出现错误:
我正在使用的当前格式模式是:
我也试过:
我在 Java 7 上运行,所以我不确定这是否也会导致问题。
java - Java 8 日期时间格式化程序
我需要用 Java 8 DateTimeFormatter 替换 SimpleDataFormat。下面是 SimpleDateFormat 的代码。
现在我需要将其更改为 DateTimeFormatter。我尝试如下
现在这正在产生异常。
java - java.util.date 到 String 使用 DateTimeFormatter
如何将 a 转换java.util.Date
为String
using
我得到的 Date 对象被传递
java - DateTimeFormatter.ISO_OFFSET_DATE_TIME 的等效格式字符串是什么?
我们是否知道是否存在输出相同结果的等效格式字符串DateTimeFormatter.ISO_OFFSET_DATE_TIME
?
IE
会输出相同的
java - java.time.format.DateTimeFormatter.ISO_INSTANT 的格式字符串?
在 Java 8 的java.time
包中,有这个格式化程序
java.time.format.DateTimeFormatter.ISO_INSTANT
( JavaDoc )
它允许在解析和格式化时使用可选的小数秒
以 UTC 格式格式化或解析瞬间的 ISO 瞬间格式化程序,例如“2011-12-03T10:15:30Z”。
这将返回一个能够格式化和解析 ISO-8601 即时格式的不可变格式化程序。格式化时,总是输出秒数。纳秒根据需要输出零、三、六或九位数字。解析时,至少需要秒字段的时间。解析从零到九的小数秒。不使用本地化的十进制样式。
可用于创建此格式化程序的格式字符串是什么?我需要存储String
但不是DateTimeFormatter
因为后者不可序列化。
具体来说,我想知道如何表达小数秒(包括.
数字前面的)。我知道S
是几分之一秒,X
是区域偏移,但我不知道如何把它们放在一起
java - 无法使用 LocalDateTime 解析日期?
我正在尝试使用 DateTimeFormatter 解析日期字符串。我收到以下异常:
错误的日期格式 10.10.2020 12:00:00 java.time.format.DateTimeParseException:无法在索引 2 处解析文本“10.10.2020 12:00:00”
任何帮助,将不胜感激?