Java - 土耳其语或其他月份的日期格式

问题描述 投票:0回答:3

我想用不同语言(包括土耳其语)设置带有月份名称和本地化标签的日期格式,

如何设置几个月的格式化标签

java date formatting
3个回答
28
投票

使用

SimpleDateFormat
构造函数 获取
Locale

SimpleDateFormat sdf = new SimpleDateFormat("dd MMMM yyyy", new Locale("tr"));
String date = sdf.format(new Date());
System.out.println(date); // 27 Eylül 2011

Locale
接受ISO-639-1语言代码


0
投票
public static void main(String Args[]) {

    String text = "Çar, 11 Eyl 2013 19:28:14 +03:00";
    try {
        Date sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss", new Locale("tr")).parse(text);

        SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = DATE_FORMAT.format(sdf);
        System.out.println(date); 
    } catch (ParseException ex) {
        Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
    }
}

0
投票

避免遗留日期时间类

存在严重缺陷的遗留日期时间类,例如

Calendar
Date
SimpleDateFormat
多年前就被 JSR 310 中定义并内置于 Java 8+ 中的现代 java.time 类所取代。

java.time

对于仅日期值,没有时间,没有时区或与 UTC 的偏移量,请使用

java.time.LocalDate
类。

LocalDate localDate = LocalDate.of( 2025 , 1 , 23 ) ;  // January 23, 2025.

要生成自动本地化文本,请获取

DateTimeFormatter
对象。为本地化中使用的人类语言和文化规范指定
Locale

Locale locale = new Locale( "tr" , "TR" ) ;  // Turkish language, Turkey cultural norms. In modern Java, use `Locale.of` instead of constructor.
DateTimeFormatter formatter = 
    DateTimeFormatter
        .ofLocalizedDate( FormatStyle.FULL )
        .withLocale( locale ) ;

生成文本。

String output = localDate.format( formatter ) ;
System.out.println( output ) ;
System.out.println( localDate.toString() ;

查看代码在 Ideone.com 中运行

23 奥卡克 2025 年佩尔森贝

2025-01-23

© www.soinside.com 2019 - 2024. All rights reserved.