当我运行第一段时,它非常好并生成输出。但是在第二种情况下,当我运行这个段2时,它生成
DateTimeException : Unable to extract ZoneId from temporal.
第1部分:
LocalDate ld = LocalDate.now();
System.out.println(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).format(ld));
第2部分:
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL);
System.out.println(dtf.format(ldt));
您混淆了“本地化”和“本地”:
>
ofLocalizedDateTime
:返回特定于语言环境的日期时间格式化程序
LocalDateTime
:没有时区的日期时间
如你所见,它们是两个完全不同的术语。
现在,尝试提供一个ZonedDateTime值,这样您就可以了解为什么它需要一个ZoneId。
ZonedDateTime zdt = ZonedDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL);
System.out.println(dtf.format(zdt));
输出(语言环境:en_US
,时区:America/New_York
)
Monday, December 30, 2019 at 8:09:16 AM Eastern Standard Time
正如你所见,它需要时区来知道时间是“东部标准时间”。
如果将时间样式从“完全”减少到“中等”,则不再需要时区。
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM);
System.out.println(dtf.format(ldt));
输出
Monday, December 30, 2019, 8:09:16 AM
我认为解释起来有点复杂,因为你把两件事混为一谈,一是定位数据时间(calizeddate),二是格式化风格(FormatStyle):
在第一种情况下,您使用FormatStyle调用localizeddate。完全,因此您忽略了时间部分。
在第二种情况下,您也使用FormatStyle调用LocalizedDateTime。完整的,包括日期的所有部分,而不是本地日期或本地日期时间。
可以肯定的是,让我们尝试使用MEDIUM
或SHORT
而不是FULL
:
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(ldt)
=> 30 déc. 2019 à 14:57:40 - without any exception
有关更多详细信息,请查看此处的评论:
/**
* Full text style, with the most detail.
* For example, the format might be 'Tuesday, April 12, 1952 AD' or '3:30:42pm PST'.
*/
FULL,
/**
* Long text style, with lots of detail.
* For example, the format might be 'January 12, 1952'.
*/
LONG,
/**
* Medium text style, with some detail.
* For example, the format might be 'Jan 12, 1952'.
*/
MEDIUM,
/**
* Short text style, typically numeric.
* For example, the format might be '12.13.52' or '3:30pm'.
*/
SHORT;
要继续,我们可以创建此表:
我一直在与服务器使用改型的响应进行斗争。 Logcat正在打印JSONObject,但它在
我对Gatling/Scala完全陌生。 我有一个场景要执行。它是这样的: -->改变员工的轮班时间。 请帮助执行上述操作。一个步骤的详细解释将非常感谢考虑到我是完全新的这一点。 谢了!
我使用这个库在我的Android应用程序中使用FFmpeg。我正在从视频中提取帧,然后将它们添加到裁剪查看器中。因此,每一帧都需要表示视频中的某个时间帧。下面是我当前提取帧的ffmpeg代码: 感谢任何帮助
我有登录请求,在请求中我获得了JSESSIONID和XSRF-TOKEN作为Cookie数据,如下所示 如果需要,如何从响应中提取JSESSIONID,以便在注册Cookie中传递该变量 在此处输入图像描述
在运行我的程序后,我得到这个奇怪的崩溃发生大约2个小时运行它,说明它不能解析日期。 有没有人知道它为什么会给这个?因为当我在网上寻找,我发现它可能是由于一个不正确的格式,但由于我没有指定的格式这不是我的情况。 解析我的时间戳的代码如下: 注意:方法返回一个字符串,如: 更新#1:以下代码重复了此问题: 生成以下stacktrace