使用java8将字符串转换为日期
我正在尝试使用Java8将字符串转换为日期格式。下面是我的代码。即使在将格式模式提到MM/dd/yyyy之后,我收到的输出也是yyy/dd/MM格式。有人能指出我做错了什么吗使用java8将字符串转换为日期,java,datetime,java-8,Java,Datetime,Java 8,我正在尝试使用Java8将字符串转换为日期格式。下面是我的代码。即使在将格式模式提到MM/dd/yyyy之后,我收到的输出也是yyy/dd/MM格式。有人能指出我做错了什么吗 String str = "01/01/2015"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); LocalDate dateTime = LocalDate.parse(str, formatte
String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime);
LocalDate是一个日期对象。它不是字符串对象,因此它显示日期输出字符串的格式将取决于toString实现 您已将其正确转换为LocalDate对象,但如果要以特定字符串格式显示日期对象,则需要相应地对其进行格式化:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
System.out.println(dateTime.format(formatter))
通过这种方式,您可以通过提供格式化程序将日期转换为所需的任何字符串格式。这是因为您使用的是声明: 输出将采用ISO-8601格式UU-MM-dd 传递给
LocalDate.parse
的DateTimeFormatter
仅用于创建LocalDate
,但它没有“附加”到所创建的实例。您需要这样使用:
String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime.format(formatter)); // not using toString
您可以为此目的使用类。
使用您想要作为参数的日期格式初始化对象
String dateInString = "27/02/2016"
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(dateInString);
您还需要一个用于输出的格式化程序,假设您希望它是一种特定的格式。
LocalDate
没有自己的格式(它的toString
方法只是提供有关它所表示的值的有用信息),您需要使用不同的格式化程序将LocalDate
格式化为所需格式的字符串。在概念上类似于@MadProgrammer,但我调用此函数的方法的返回类型为Date。@Elliott这意味着格式化程序将再次将此日期转换为字符串?那么?您不应该关心LocalDate#toString
生成什么格式,当该显示值时,再格式化它,否则,您根本不应该关心,它只是一个表示某个时间点的容器类。您是否建议使用其他内容而不是LocalDate,为了满足我的需求,我需要将字符串转换为mm/dd/yyyy格式的日期,并将其存储在我的数据库中。不..您的代码将其存储在数据库中是正确的。大多数数据库都支持date。它们将在毫秒内将其存储在内部。当你进行查询时,他们会以特定的格式显示给你。这并不意味着日期是以这种格式存储的。