今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。
public String getFormatDateString(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYYMMdd"));
最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。
官网链接

从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而这周(2020-12-28到2021-01-03)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出来,正好被我测试到。
关于localDateTime的详细使用,可以参照我的这篇博文。
jdk8中的LocalTime,LocalDate,LocalDateTime与jdk8之前的Date,SimpleDateFormat比较
今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。官网链接从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而今天(2020-12-28,周一)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出
在Python中,通常有这几种方式来表示时间:
时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
格式化的时间字符串(Format String)
结构化的时间(struct_time):struct_time元组共有9个元素:(...
【Bug记录】JSON parse error: raw timestamp (1595952000000) not allowed for `java.time.LocalDateTime`
@import url(http://www.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://www.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.cs...
public static void main(String[] args) {
SpringApplication.run(SwappingApplication.class, args);
@PostConstruct
void started() {
// Tim
// 01. java.util.Date --> java.time.LocalDateTime
public void DateToLocalDateTime() {
java.util.Date date = new java.util.Date();
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();