有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将Java SQL日期从yyyyMMdd转换为dd MMMM yyyy格式的最佳方法

有没有一种简单的方法可以将Java SQL日期从yyyy-MM-dd格式转换为dd-MMMM-yyyy格式

我可以将日期转换为字符串,然后对其进行操作,但我宁愿将其保留为Java SQL日期。在我需要这样做的时候,数据已经从MySQL数据库中读取,所以我无法在那里进行更改


共 (2) 个答案

  1. # 1 楼答案

    不清楚“Java SQL日期”是什么意思。如果你的意思是java.sql.Date,那么它实际上没有字符串格式。。。这只是一个数字。要以一种特定的方式格式化它,可以使用类似^{}的东西

    或者,将其转换为Joda Time{};Joda Time是一个比内置API更好的日期和时间API。例如,SimpleDateFormat不是线程安全的

    (请注意,java.sql.Date比普通的java.util.Date具有更高的精度,但这里似乎不需要这种精度。)

  2. # 2 楼答案

    tl;博士

    myJavaSqlDate.toLocalDate()
                 .format(
                     DateTimeFormatter.ofLocalizedDate ( FormatStyle.LONG )
                                      .withLocale ( Locale.UK )
                 )
    

    11 May 2017

    不要将日期时间值与其文本表示形式混为一谈

    正如其他人所说,日期时间对象具有格式。只有从对象生成或由对象解析的字符串具有格式。但是这样的字符串总是与日期时间对象分开的

    使用对象,而不是字符串

    避免使用字符串与数据库通信日期时间值。对于日期时间值,使用日期时间类实例化日期时间对象

    JDBC的目的就是协调数据库和Java之间的类型差异

    使用java。时间

    其他答案已经过时,因为它们使用了麻烦的旧遗留日期时间类或久负盛名的乔达时间库。两者都已被爪哇取代。时间课

    如果手头有一个^{}对象,则通过调用添加到旧类中的新方法^{},将其转换为^{}

    LocalDate ld = myJavaSqlDate.toLocalDate() ;
    

    对于符合JDBC 4.2及更高版本的JDBC drivers,您可以直接使用java。时间类型

    你似乎对日期值感兴趣。所以使用LocalDate^{}类表示只包含日期的值,不包含一天中的时间和时区

    • ^{}
      myPStmt。setObject(…,myLocalDate)
    • ^{}
      我的结果集。getObject(…,LocalDate.class)

    要生成所需格式的字符串,可以指定自定义格式模式。但我建议让java。时间会自动定位

    要本地化,请指定:

    • ^{}以确定字符串的长度或缩写
    • ^{}确定(a)用于翻译日名、月名等的人类语言,以及(b)决定缩写、大写、标点符号、分隔符等问题的文化规范

    例如

    LocalDate ld = LocalDate.now ( ZoneId.of ( "America/Montreal" ) );  // Today's date at this moment in that zone.
    DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate ( FormatStyle.LONG ).withLocale ( Locale.UK );
    String output = ld.format ( f );
    

    output: 11 May 2017


    关于java。时间

    {a12}框架内置于Java8及更高版本中。这些类取代了legacy日期时间类,比如^{}^{}、&^{}

    目前位于maintenance modeJoda-Time项目建议迁移到java.time

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

    在哪里可以获得java。时间课

    {a30}项目扩展了java。有额外课程的时间。这个项目是java未来可能增加的一个试验场。时间你可以在这里找到一些有用的类,比如^{}^{}^{}more