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

我有一个表示日期的字符串

字符串日期\u s=“2011-01-18 00:00:00.0”;

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

2011-01-18

我怎样才能做到这一点


好的,根据我在下面找到的答案,我尝试了以下几点:

字符串日期\u s=“2011-01-18 00:00:00.0”;
SimpleDataFormat dt=新的SimpleDataFormat(“YYYY-mm-dd hh:mm:ss”);
日期=dt.parse(日期);
SimpleDataFormat dt1=新的SimpleDataFormat(“YYYY-mm-dd”);
System.out.println(dt1.format(date));

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

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

String oldstring=“2011-01-18 00:00:00.0”;
LocalDateTime datetime=LocalDateTime.parse(模式的oldstring、DateTimeFormatter.of(“yyyy-MM-dd HH:MM:ss.S”);

使用LocalDateTime\format()(或ZonedDateTime#format())以特定模式将LocalDateTime格式化为字符串

String newstring=datetime.format(模式的DateTimeFormatter.of(“yyyy-MM-dd”);
System.out.println(新闻字符串);//2011-01-18

,当您还没有使用Java 8时,请使用SimpleDataFormat#parse()以特定模式将字符串解析为日期

String oldstring=“2011-01-18 00:00:00.0”;
日期日期=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss.S”).parse(旧字符串);

使用SimpleDateFormat#format()以特定模式将日期格式化为字符串

String newstring=new SimpleDateFormat(“yyyy-MM-dd”)。格式(日期);
System.out.println(新闻字符串);//2011-01-18

另见:


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

发表评论