gpt4 book ai didi

java - 更改 Java 字符串中的日期格式

转载 作者:bug小助手 更新时间:2023-10-28 01:35:28 25 4
gpt4 key购买 nike

我有一个代表日期的 String

String date_s = "2011-01-18 00:00:00.0";

我想将其转换为 Date 并以 YYYY-MM-DD 格式输出。

2011-01-18

我怎样才能做到这一点?


好的,根据我在下面检索到的答案,这是我尝试过的:

String date_s = " 2011-01-18 00:00:00.0"; 
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss");
Date date = dt.parse(date_s);
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");
System.out.println(dt1.format(date));

但它输出 02011-00-1 而不是所需的 2011-01-18。我做错了什么?

最佳答案

使用 LocalDateTime#parse() (或 ZonedDateTime#parse() 如果字符串恰好包含时区部分)以某种模式将 String 解析为 LocalDateTime

String oldstring = "2011-01-18 00:00:00.0";
LocalDateTime datetime = LocalDateTime.parse(oldstring, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"));

使用 LocalDateTime#format() (或 ZonedDateTime#format() )以特定模式将 LocalDateTime 格式化为 String

String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(newstring); // 2011-01-18

或者,如果您还没有使用 Java 8,请使用 SimpleDateFormat#parse()以某种模式将 String 解析为 Date

String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);

使用 SimpleDateFormat#format()以特定模式将 Date 格式化为 String

String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18

另见:


更新:根据您的失败尝试:模式区分大小写。阅读 java.text.SimpleDateFormat javadoc各个部分代表什么。例如 M 代表月份,m 代表分钟。此外,年份存在四位 yyyy,而不是五位 yyyyy。仔细查看我在上面发布的代码片段。

关于java - 更改 Java 字符串中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com