相关疑难解决方法(0)

格式化即时字符串

我正在尝试使用新的java 8 time-api和模式将Instant格式化为String:

Instant instant = ...;
String out = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(instant);
Run Code Online (Sandbox Code Playgroud)

使用上面的代码我得到一个异常,它抱怨一个不受支持的字段:

java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra
    at java.time.Instant.getLong(Instant.java:608)
    at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
    ...
Run Code Online (Sandbox Code Playgroud)

java datetime datetime-format java-8 java-time

192
推荐指数
5
解决办法
14万
查看次数

Java中的`DateTimeFormatter`格式化代码中的`uuuu`与`yyyy`?

DateTimeFormatter类文件说,有关当年的格式代码:

你在2004年; 04

y年的2004年; 04

...

年份:字母数决定了使用填充的最小字段宽度.如果字母数是2,则使用减少的两位数形式.对于打印,这将输出最右边的两位数字.对于解析,这将使用2000的基值进行解析,从而产生2000到2099(包括2000和2099)范围内的一年.如果字母数小于4(但不是2),则符号仅按负号年份输出,符合SignStyle.NORMAL.否则,如果超出了焊盘宽度,则根据SignStyle.EXCEEDS_PAD输出符号.

没有提到"时代".

那么究竟是什么这两个代码之间的差异,uy,yearyear-of-era

什么时候应该使用类似这种模式的东西uuuu-MM-dd以及何时yyyy-MM-dd使用Java中的日期?

似乎那些知道使用的代码编写的示例代码uuuu,但为什么呢?

其他格式化类如遗产SimpleDateFormat只有yyyy,所以我很困惑为什么java.time uuuu为"年代" 带来了这个.

datetime parsing date date-formatting java-time

26
推荐指数
3
解决办法
8163
查看次数