相关疑难解决方法(0)

SimpleDateFormat("dd-MMM-YYYY")印刷年份提前一年

我在我的代码中使用SimpleDateFormat("dd-MMM-YYYY"),它输出错误.

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");

    System.out.println("Actual date : "+new Date()+" after Formatting : "+ dateFormat.format(new Date()));
Run Code Online (Sandbox Code Playgroud)

以上代码给出: 实际日期:Tue Dec 30 13:51:06 IST 2014格式化后:2015年12月30日

以上代码为打印日期,年份为1年.此问题仅适用于2014年12月28日至31日的日期.

提前致谢.--Ajay

java

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

将日期转换为纪元 Java

我想将2018-02-21 15:47:35UTC转换为纪元 UTC 形式。我们该怎么做呢?我目前在 PST。

SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");

df.setTimeZone(TimeZone.getTimeZone("UTC"));
date = df.parse(dateString).getTime();
Run Code Online (Sandbox Code Playgroud)

上面的代码应该返回自 以来的毫秒数January 1, 1970, 00:00:00 GMT,但我得到的值不正确。

java datetime epoch simpledateformat datetime-parsing

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

为什么sdf.format(date)在Java中将2018-12-30转换为2019-12-30?

我正在尝试将日期转换为字符串,但转换时将2018年更改为2019年。

我尝试了不同的日期,它有效。它仅在2018年12月30日和12月31日失败。

SimpleDateFormat fmt = new SimpleDateFormat("YYYY-MM-dd");
Date date = fmt.parse("2018-12-30");
String date2 = fmt.format(date);
Run Code Online (Sandbox Code Playgroud)

预期结果:2018-12-30

实际结果:2019-12-30

java date

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

Java ZonedDateTime.format 问题

运行到ZonedDateTime格式化的问题。它将 2020 年 12 月的结束日期格式化为 2021 年的日期。Java 片段

ZonedDateTime z1 = ZonedDateTime.of(LocalDateTime.of(2020, 12, 31, 0, 0), ZoneId.of("America/New_York"));
z1.format(DateTimeFormatter.ofPattern("YYYY-MM-dd"))
// yields "2021-12-31"
Run Code Online (Sandbox Code Playgroud)

12 月 28 日、29 日、30 日也是如此。不同时区的结果相同。重复 2019 年 12 月 30 日(格式为 2020-12-30)。

原始 Clojure 片段

(let [zdt (ZonedDateTime/of (LocalDateTime/of 2020 12 31 0 0) (ZoneId/of "America/New_York"))
      f (DateTimeFormatter/ofPattern "YYYY-MM-dd")]
  (.format zdt f))
; => "2021-12-31"
Run Code Online (Sandbox Code Playgroud)

我能够重现:

  • MacOS HotSpot Java 10(Java 版本“10.0.2”2018-07-17)
  • OpenJDK 版本“11.0.9.1” 2020-11-04

如果您对 Lisps 没问题 – 您可以在此处的云 REPL 中亲自查看

java zoneddatetime datetimeformatter

0
推荐指数
1
解决办法
116
查看次数

SimpleDateFormat的问题

我正在研究日期格式SimpleDateFormat.但是当我以提供格式格式化我的日期时,年份值增加1.条件发生在该值.为什么会这样?

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
System.out.println("dob - "+date); // Java date
System.out.println("formatted date - "+sdf.format(date));
Run Code Online (Sandbox Code Playgroud)

输出如下:

dob - Sun Dec 28 00:00:00 IST 1975
formatted date - 28-12-1976
Run Code Online (Sandbox Code Playgroud)

年份值增加1.为什么会发生这种情况.

java date simpledateformat

-1
推荐指数
1
解决办法
246
查看次数

Java 简单日期格式

我正在尝试将文本格式化为日期。这是我所拥有的:

String pattern = "yyyy.MM.dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date d=sdf.parse("12.1.5");
Run Code Online (Sandbox Code Playgroud)

我得到:

java.lang.IllegalArgumentException: 非法模式字符“Y”

这一点。

我也尝试过使用 ParsePosition 以及“2012.01.05”。同样的错误。

如何将此字符串解析为日期?有什么可选的方式吗?我错过了什么?

谢谢,

java string date date-format simpledateformat

-2
推荐指数
1
解决办法
9759
查看次数