Java 为什么不是’;t DateTimeFormatter格式化我的字符串?
我有一个简单的日期字符串Java 为什么不是’;t DateTimeFormatter格式化我的字符串?,java,datetime,datetime-format,localdate,java-time,Java,Datetime,Datetime Format,Localdate,Java Time,我有一个简单的日期字符串headerValues[5]=“24.11.1946”。我只想把它转换,解析成一个日期对象。 所以我用 DateTimeFormatter formatter = ofPattern(("dd.MM.yyyy"); headerLine.setStartDate(LocalDate.parse(headerValues[5],datePattern)); 输出是2012-04-25不是我想要的24.11.1946 为什么 编辑 我试过这个 DateTimeFo
headerValues[5]=“24.11.1946”
。我只想把它转换,解析成一个日期对象。
所以我用
DateTimeFormatter formatter = ofPattern(("dd.MM.yyyy");
headerLine.setStartDate(LocalDate.parse(headerValues[5],datePattern));
输出是2012-04-25
不是我想要的24.11.1946
为什么
编辑
我试过这个
DateTimeFormatter datePattern=DateTimeFormatter.of模式(“dd.MM.yyyy”,Locale.GERMANY);
字符串日期=“24.11.1946”;
System.out.println(“Date=“+LocalDate.parse(Date,datePattern));
输出是
日期=1946-11-24
这部分代码
LocalDate.parse(date,datePattern)
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
创建一个LocalDate
实例
因此在这行代码中
LocalDate.parse(date,datePattern)
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
实际上,您正在调用类LocalDate
的方法toString()
从该方法的javadoc
输出将采用ISO-8601格式uu-MM-dd
你不想要那种格式。您需要datePattern
对象的格式。因此,您应该更改发布到的代码的最后一行
System.out.println(datePattern.format(LocalDate.parse(date,datePattern)));
换句话说,相同的DateTimeFormatter
对象既可用于将字符串
解析为日期,也可用于将日期格式化为字符串
这部分代码
LocalDate.parse(date,datePattern)
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
创建一个LocalDate
实例
因此在这行代码中
LocalDate.parse(date,datePattern)
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
实际上,您正在调用类LocalDate
的方法toString()
从该方法的javadoc
输出将采用ISO-8601格式uu-MM-dd
你不想要那种格式。您需要datePattern
对象的格式。因此,您应该更改发布到的代码的最后一行
System.out.println(datePattern.format(LocalDate.parse(date,datePattern)));
换句话说,相同的DateTimeFormatter
对象既可以用于将字符串
解析为日期,也可以用于将日期格式化为字符串
您发布的代码的第二行不应该是:headerLine.setStartDate(LocalDate.parse(headerValues[5],formatter))代码>?您发布的代码的第一行不应该是:DateTimeFormatter formatter=DateTimeFormatter.ofPattern(“dd.MM.yyyy”)代码>?是的,输入错误仍然不起作用,输出仍然相同。我建议你发表一篇文章。你应该回答你的问题并添加你的最后评论。没关系,我是为你做的。那么,您得到的输出有什么问题吗?您发布的代码的第二行不应该是:headerLine.setStartDate(LocalDate.parse(headerValues[5],formatter))代码>?您发布的代码的第一行不应该是:DateTimeFormatter formatter=DateTimeFormatter.ofPattern(“dd.MM.yyyy”)代码>?是的,输入错误仍然不起作用,输出仍然相同。我建议你发表一篇文章。你应该回答你的问题并添加你的最后评论。没关系,我是为你做的。那么,您得到的输出有什么问题吗?您好,我发现DateTimeFormatter.format方法返回一个字符串,我需要一个LocalDate对象???有没有办法生成一个24.11.1946对象并将其保存为原样而不格式化字符串?此代码-LocalDate.parse(日期,日期模式)
-返回一个LocalDate
对象。这就是你想要的吗?你只是想要一个LocalDate
对象吗?Date
本身很少(如果有的话)存储某个时刻的实际字符串或格式-它通常存储一个与某个历元相距较远的长字符串或格式。您需要使用该格式化程序在所需的字符串表示形式和表示它的实际Date
对象之间进行转换;如果你想简化这个过程,然后制作一些包装日期对象的东西,并提供functionallity@Rogue我想你需要向OP解释这一点,而不是向我解释:-)嗨,我发现DateTimeFormatter.format方法返回一个字符串,我需要一个LocalDate对象???有没有办法创建一个24.11.1946对象并将其保存为无格式的原样字符串?此代码-LocalDate.parse(date,datePattern)
-返回一个LocalDate
对象。这就是你想要的吗?你只是想要一个LocalDate
对象吗?Date
本身很少(如果有的话)存储某个时刻的实际字符串或格式-它通常存储一个与某个历元相距较远的长字符串或格式。您需要使用该格式化程序在所需的字符串表示形式和表示它的实际Date
对象之间进行转换;如果你想简化这一点,那么做一些东西来包装你的日期对象并提供它functionallity@Rogue我认为你需要向OP解释,而不是向我解释:)