Java如何在Joda-Time中格式化DateTime对象?

该示例说明如何格式化日期的字符串表示形式。在Joda中,我们可以使用DateTime的classtoString()方法。该方法接受日期格式的模式和语言环境信息。

package org.nhooo.example.joda;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;

import java.util.Locale;

public class FormattingDemo {
    // 定义日期格式模式。
    private static final String pattern = "E MM/dd/yyyy HH:mm:ss.SSS";

    public static void main(String[] args) {
        // 创建一个DateTime对象的新实例。
        DateTime dt = DateTime.now();

        // 使用定义的格式将日期打印为格式字符串
        // 语言环境信息。
        System.out.println("Pattern  = " + pattern);
        System.out.println("Default  = " + dt.toString(pattern));
        System.out.println("Germany  = " + dt.toString(pattern, Locale.GERMANY));
        System.out.println("French   = " + dt.toString(pattern, Locale.FRENCH));
        System.out.println("Japanese = " + dt.toString(pattern, Locale.JAPANESE));

        // 使用DateTimeFormat类中的预定义格式。
        System.out.println("fullDate   = " + dt.toString(DateTimeFormat.fullDate()));
        System.out.println("longDate   = " + dt.toString(DateTimeFormat.longDate()));
        System.out.println("mediumDate = " + dt.toString(DateTimeFormat.mediumDate()));
        System.out.println("shortDate  = " + dt.toString(DateTimeFormat.shortDate()));
        System.out.println("dd/MM/yyyy = " + dt.toString(DateTimeFormat.forPattern("dd/MM/yyyy")));
    }
}

这是我们程序的示例结果:

Pattern  = E MM/dd/yyyy HH:mm:ss.SSS
Default  = Mon 07/22/2019 13:50:28.502
Germany  = Mo 07/22/2019 13:50:28.502
French   = lun. 07/22/2019 13:50:28.502
Japanese = 月 07/22/2019 13:50:28.502
fullDate   = Monday, July 22, 2019
longDate   = July 22, 2019
mediumDate = Jul 22, 2019
shortDate  = 7/22/19
dd/MM/yyyy = 22/07/2019

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=joda-time/joda-time/2.10.3/joda-time-2.10.3.jar -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10.3</version>
</dependency>

Maven中央