Java如何获得已定义国家/地区的默认日期和时间格式?

DateFormat类允许您以对语言环境敏感的方式使用预定义的样式来格式化日期和时间。 使用DateFormat类格式化日期或时间是一个两步过程。

首先,当您想同时格式化日期和时间时,使用getDateInstance()方法格式化日期或使用getTimeInstance()方法格式化时间或使用getDateTimeInstance()创建格式化程序。

其次,调用format方法,该方法返回包含格式化日期的String。下面的示例通过调用这两个方法来格式化今天的日期和时间。

package org.nhooo.example.text;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class LocaleDateTime {
    public static void main(String[] args) {
        Locale[] locales = {Locale.CANADA, Locale.FRANCE, Locale.GERMANY,
            Locale.US, Locale.JAPAN};

        Date today = new Date();
        for (Locale locale : locales) {
            StringBuilder sb = new StringBuilder();
            sb.append(locale.getDisplayCountry())
                .append(System.lineSeparator());
            sb.append("--------------------------------")
                .append(System.lineSeparator());

            // 获取指定语言环境的DateFormat实例
            // 并通过调用格式格式化日期对象
            // 方法。
            DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, locale);
            String date = df.format(today);
            sb.append("Default date format: ").append(date)
                .append(System.lineSeparator());

            // 获取指定语言环境的DateFormat实例
            // 并通过调用格式来格式化时间信息
            // 方法。
            DateFormat tf = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale);
            String time = tf.format(today.getTime());
            sb.append("Default time format: ").append(time)
                .append(System.lineSeparator());

            System.out.println(sb.toString());
        }

        // 使用获取意大利语言环境的日期和时间格式的值
        // 要在同一字符串中显示日期和时间,请创建
        // 使用getDateTimeInstance方法的格式化程序。
        // 第一个参数是日期样式,第二个参数是time样式。第三个参数是语言环境
        DateFormat dtf = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,
            DateFormat.DEFAULT, Locale.ITALY);
        String datetime = dtf.format(today);

        System.out.println("date time format in " +
            Locale.ITALY.getDisplayCountry() + ": " + datetime);
    }
}

这是农产品的输出:

Canada
--------------------------------
Default date format: 10-Apr-2018
Default time format: 10:18:11 PM

France
--------------------------------
Default date format: 10 avr. 2018
Default time format: 22:18:11

Germany
--------------------------------
Default date format: 10.04.2018
Default time format: 22:18:11

United States
--------------------------------
Default date format: Apr 10, 2018
Default time format: 10:18:11 PM

Japan
--------------------------------
Default date format: 2018/04/10
Default time format: 22:18:11

date time format in Italy: 10-apr-2018 22.18.11