gpt4 book ai didi

java - 如何在日期数据类型中存储字符串数据类型值

转载 作者:行者123 更新时间:2023-12-01 17:53:00 24 4
gpt4 key购买 nike

我正在尝试以日期数据类型存储字符串,但没有找到任何解决方案

String string = "20171218";
try {
DateFormat dateformat = new SimpleDateFormat("yyyyMMdd");
Date dateto=dateformat.parse(string); // convert stringDate to matching Date format
String parsed = dateformat.format(dateto);
System.out.println(parsed);

} catch (Exception e) {

}

在上面的代码中,我的日期再次转换为字符串数据类型,但是,我想将日期存储为日期数据类型

例如:而不是 String parsed = dateformat.format(dateto);我想存储为Date parsed = dateformat.format(dateto);,如何解决这个问题

最佳答案

tl;博士

LocalDate.parse( 
"20171218" ,
DateTimeFormatter.BASIC_ISO_DATE
)

避免遗留日期时间类

您正在使用麻烦的旧日期时间类,这些类现在已经成为遗留问题。

此外,您不恰本地尝试使用日期+时间类型 (java.util.Date) 表示仅日期值。

详细信息

使用现代 java.time 类。

LocalDate类表示仅日期值,没有时间和时区。

DateTimeFormatter f = DateTimeFormatter.BASIC_ISO_DATE ;  // Built-in, pre-defined. 
LocalDate ld = LocalDate.parse( "20171218" , f ) ;

字符串

日期时间对象没有“格式”。不要将表示对象值的字符串与对象本身混为一谈。对象可以生成字符串来表示其值,也可以解析字符串来获取值,但对象和字符串是不同且分开的。

生成字符串为标准ISO 8601通过调用 toString 进行格式化。

String output = ld.toString() ;

2017-12-18

要生成与输入格式相同的字符串,请调用 format

String output = ld.format( DateTimeFormatter.BASIC_ISO_DATE ) ;

20171218

上面看到的“基本”指的是type of ISO 8601 formats其中分隔符的使用被最小化。我建议您通常尽可能使用扩展格式,在本例中为 2017-12-18。在解析/生成字符串时,默认情况下在整个 java.time 类中使用这些扩展格式。

要生成其他格式的字符串,请搜索 Stack Overflow 以获取有关 DateTimeFormatter 的信息。 。

DateTimeParseException

要在解析时捕获无效输入,请捕获 DateTimeParseException .

try {
DateTimeFormatter f = DateTimeFormatter.BASIC_ISO_DATE ;
LocalDate.parse( "20171218" , f ) ;
} catch ( DateTimeParseException e ) {
… handle exception
}
<小时/>

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .

从哪里获取java.time类?

ThreeTen-Extra项目通过附加类扩展了 java.time。该项目是 java.time future 可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter ,和 more .

关于java - 如何在日期数据类型中存储字符串数据类型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47877239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com