为了账号安全,请及时绑定邮箱和手机立即绑定

用Java解析不同格式的字符串

用Java解析不同格式的字符串

慕娘9325324 2019-07-20 09:53:50
用Java解析不同格式的字符串我想皈依String到Date以不同的格式。例如,我是从用户那里得到的,String fromDate = "19/05/2009"; // i.e. (dd/MM/yyyy) format我想转换这个fromDate作为日期对象"yyyy-MM-dd"格式我该怎么做?
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

LocalDate.parse( 
    "19/05/2009" , 
    DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) )

细节

其他答案java.util.Datejava.sql.Date,和SimpleDateFormat现在已经过时了。

LocalDate

实现日期时间的现代方法是使用java.time类,特别是LocalDate..这个LocalDate类表示一个日期纯值,没有一天的时间,也没有时区.

DateTimeFormatter

若要解析或生成表示日期时间值的字符串,请使用DateTimeFormatter班级,等级。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );LocalDate ld = LocalDate.parse( "19/05/2009" , f );

不要将日期时间对象与表示其值的字符串合并.日期时间对象格式,而字符串是这样的。日期时间对象,如LocalDate,能生成表示其内部值的字符串,但日期时间对象和字符串是独立的不同对象。

可以指定任何自定义格式来生成字符串。或者让java.time完成自动本地化的工作。

DateTimeFormatter f = 
    DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
                     .withLocale( Locale.CANADA_FRENCH ) ;String output = ld.format( f );

转储到控制台。

System.out.println( "ld: " + ld + " | output: " + output );

LD:2009-05-19输出:MADI 19 MAI 2009

见IdeOne.com中的行动.


关于java.time

这个java.time框架构建在Java 8及更高版本中。这些阶级取代了那个烦人的老人。遗产日期-时间类,如java.util.DateCalendar, & SimpleDateFormat.

这个尤达-时间项目,现在在维护模式,建议迁移到java.time上课。

若要了解更多信息,请参见Oracle教程..并搜索堆栈溢出的许多例子和解释。规格是JSR 310.

你们可以交换java.time对象直接使用数据库。用JDBC驱动程序符合JDBC 4.2或者晚些时候。不需要字符串,不需要字符串java.sql.*上课。

在哪里获得java.time类?

这个三次-额外项目使用其他类扩展java.time。这个项目是java.time将来可能添加的一个试验场。您可能会在这里发现一些有用的类,例如IntervalYearWeekYearQuarter,和更多.


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 270 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信