我在我的代码中使用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
我想将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,但我得到的值不正确。
我正在尝试将日期转换为字符串,但转换时将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
运行到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)
我能够重现:
我正在研究日期格式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.为什么会发生这种情况.
我正在尝试将文本格式化为日期。这是我所拥有的:
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”。同样的错误。
如何将此字符串解析为日期?有什么可选的方式吗?我错过了什么?
谢谢,