Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Java中日期对象的ISO 8601日期格式字符串_Java_Date - Fatal编程技术网

Java中日期对象的ISO 8601日期格式字符串

Java中日期对象的ISO 8601日期格式字符串,java,date,Java,Date,我试图只搜索ISO 8601日期的不同格式的答案,但无法识别包含这些细节的答案或材料 我正在尝试接收ISO 8601日期格式(日期仅作为其出生日期)字符串,并将其转换为日期对象,然后保存在dB中。仅yyyy-MM-dd日期格式,被视为ISO 8601日期格式。如果是这样,我可以相应地处理这个问题,但是是否有多个日期ISO 8601日期格式,如果是这样,请您指导解析给定字符串并转换为Java中的日期对象的最佳方法是什么?是的,yyyy MM dd是ISO 8601格式,用于不带时间和时区的日期 要

我试图只搜索ISO 8601日期的不同格式的答案,但无法识别包含这些细节的答案或材料


我正在尝试接收ISO 8601日期格式(日期仅作为其出生日期)字符串,并将其转换为日期对象,然后保存在dB中。仅yyyy-MM-dd日期格式,被视为ISO 8601日期格式。如果是这样,我可以相应地处理这个问题,但是是否有多个日期ISO 8601日期格式,如果是这样,请您指导解析给定字符串并转换为Java中的日期对象的最佳方法是什么?

是的,yyyy MM dd是ISO 8601格式,用于不带时间和时区的日期

要使用JDBC 4.2或更高版本的驱动程序或Hibernate 5等现代JPA实现存储到SQL数据库中,您没有任何东西可以使用
Date
对象(无论您是指
java.util.Date
还是
java.SQL.Date
)。我建议您改用java.time,这是现代的java日期和时间API。用于没有时间的日期的类是
LocalDate
。您可以将其存储到数据库中,而无需任何转换

LocalDate
将ISO 8601格式解析为默认格式,即不使用任何显式格式化程序:

    String receivedString = "1962-11-27";
    LocalDate dateOfBirth = LocalDate.parse(receivedString);
    System.out.println("Date of birth is " + dateOfBirth);
LocalDate
在打印ISO 8601格式时也会返回该格式:

出生日期为1962年11月27日

不过,我还没有告诉你全部情况。yyyy-MM-dd是迄今为止最常用的扩展格式。还有一种更紧凑的基本格式,它省去了连字符:yyyyMMdd。我建议您坚持使用扩展格式获取日期字符串。如果无法执行此操作,则必须指定用于解析的格式化程序:

    String receivedString = "19621127";
    LocalDate dateOfBirth = LocalDate.parse(
            receivedString, DateTimeFormatter.BASIC_ISO_DATE);
这将为您提供一个
LocalDate
,该日期与我们之前的日期相同,并且无法区分

要使用JDBC保存到数据库中,请执行以下操作:

    PreparedStatement pStmt
            = yourDatabaseConnection.prepareStatement(
                    "insert into your_table (date_of_birth) values (?);");
    pStmt.setObject(1, dateOfBirth);
    int insertedRows = pStmt.executeUpdate();
注意使用的是
setObject()
,而不是
setDate()

链接
  • 解释如何使用java.time
  • ,其中首先描述了
    java.time
  • ,java.time的后端口到Java6和Java7(JSR-310为三十)
  • ,Android版Three Ten Backport
  • ,解释得非常透彻
  • 相关问题:

是的,yyyy-MM-dd是ISO 8601格式,表示没有时间和时区的日期

要使用JDBC 4.2或更高版本的驱动程序或Hibernate 5等现代JPA实现存储到SQL数据库中,您没有任何东西可以使用
Date
对象(无论您是指
java.util.Date
还是
java.SQL.Date
)。我建议您改用java.time,这是现代的java日期和时间API。用于没有时间的日期的类是
LocalDate
。您可以将其存储到数据库中,而无需任何转换

LocalDate
将ISO 8601格式解析为默认格式,即不使用任何显式格式化程序:

    String receivedString = "1962-11-27";
    LocalDate dateOfBirth = LocalDate.parse(receivedString);
    System.out.println("Date of birth is " + dateOfBirth);
LocalDate
在打印ISO 8601格式时也会返回该格式:

出生日期为1962年11月27日

不过,我还没有告诉你全部情况。yyyy-MM-dd是迄今为止最常用的扩展格式。还有一种更紧凑的基本格式,它省去了连字符:yyyyMMdd。我建议您坚持使用扩展格式获取日期字符串。如果无法执行此操作,则必须指定用于解析的格式化程序:

    String receivedString = "19621127";
    LocalDate dateOfBirth = LocalDate.parse(
            receivedString, DateTimeFormatter.BASIC_ISO_DATE);
这将为您提供一个
LocalDate
,该日期与我们之前的日期相同,并且无法区分

要使用JDBC保存到数据库中,请执行以下操作:

    PreparedStatement pStmt
            = yourDatabaseConnection.prepareStatement(
                    "insert into your_table (date_of_birth) values (?);");
    pStmt.setObject(1, dateOfBirth);
    int insertedRows = pStmt.executeUpdate();
注意使用的是
setObject()
,而不是
setDate()

链接
  • 解释如何使用java.time
  • ,其中首先描述了
    java.time
  • ,java.time的后端口到Java6和Java7(JSR-310为三十)
  • ,Android版Three Ten Backport
  • ,解释得非常透彻
  • 相关问题:

根据if-you-only-required date(无时间),则格式仅为
yyyy-MM-dd
,例如2020-04-05请看这里(特别是“预定义的格式化程序”部分):根据if-you-only-required date(无时间),您有一些格式SO 8601的解释和示例,然后格式仅为
yyyy-MM-dd
,例如2020-04-05看看这里(特别是“预定义的格式化程序”部分):,您有一些格式的解释和示例,因此8601感谢您的输入和材料!!非常感谢您的投入和材料!!