Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java8将字符串转换为日期_Java_Datetime_Java 8 - Fatal编程技术网

使用java8将字符串转换为日期

使用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

我正在尝试使用Java8将字符串转换为日期格式。下面是我的代码。即使在将格式模式提到MM/dd/yyyy之后,我收到的输出也是yyy/dd/MM格式。有人能指出我做错了什么吗

    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。它们将在毫秒内将其存储在内部。当你进行查询时,他们会以特定的格式显示给你。这并不意味着日期是以这种格式存储的。