6450


Javaで`ISO 8601`による日付を言語毎に日本語なら`yyyy年MM月dd日`､英語なら`Feb(MM)
dd,yyyy`のように表示したいのですが､なにか良いライブラリはありますか｡

対応したい言語は日本語､英語､中国語､フランス語､インドネシア語です｡

**追記:**  
アプリの種類はAndroidです｡


CC BY-SA 3.0
2015-02-13T12:07:23.203
6448
2015-02-13T13:05:46.800
2015-02-13T12:58:32.237
7232
7232
question
android java localization
Javaによる､日付のローカライズ｡


[Joda Time](http://www.joda.org/joda-time/) / [joda-time-
android](https://github.com/dlew/joda-time-android)
([ISODateTimeFormat](http://joda-
time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html))

* * *

_PrintI18NTimes.java_ :

[code]

    import java.util.*;
    import org.joda.time.DateTime;
    import org.joda.time.format.*;
    
    public class PrintI18NTimes {
        public static void main( String[] args) {
            // Input:
            final String iso_date_str = "2015-02-14T01:02+01:00";
            final DateTimeFormatter parser = ISODateTimeFormat.dateTimeParser();
            final DateTime dateTime = parser.parseDateTime( iso_date_str);
    
            // Output:
            final DateTimeFormatter ft_full = DateTimeFormat.fullDate();
            final DateTimeFormatter ft_mediam = DateTimeFormat.mediumDate();
            final DateTimeFormatter ft_short = DateTimeFormat.shortDate();
            final List<String> lines = new ArrayList<String>();
            for ( DateTimeFormatter formatter : new DateTimeFormatter[] {ft_full, ft_mediam, ft_short}) {
                lines.add( "Japanese  : " + formatter.withLocale( Locale.JAPANESE).print( dateTime));
                lines.add( "English   : " + formatter.withLocale( Locale.ENGLISH).print( dateTime));
                lines.add( "Chinese   : " + formatter.withLocale( Locale.CHINESE).print( dateTime));
                lines.add( "French    : " + formatter.withLocale( Locale.FRENCH).print( dateTime));
                lines.add( "Indonesian: " + formatter.withLocale( new Locale("id", "ID")).print( dateTime));
                lines.add( "");
            }
            System.out.println( "When is the Valentine day ?\n(Hint: " + iso_date_str + ")\n=====\n");
            for ( String line : lines)  System.out.println( line);
        }
    }
    
[/code]

_Output_ :

[code]

    When is the Valentine day ?
    (Hint: 2015-02-14T01:02+01:00)
    =====
    
    Japanese  : 2015年2月14日
    English   : Saturday, February 14, 2015
    Chinese   : 2015年2月14日 星期六
    French    : samedi 14 février 2015
    Indonesian: Sabtu 14 Februari 2015
    
    Japanese  : 2015/02/14
    English   : Feb 14, 2015
    Chinese   : 2015-2-14
    French    : 14 févr. 2015
    Indonesian: 14 Feb 15
    
    Japanese  : 15/02/14
    English   : 2/14/15
    Chinese   : 15-2-14
    French    : 14/02/15
    Indonesian: 14/02/15
    
[/code]


CC BY-SA 3.0
2015-02-13T13:05:46.800
6450
2015-02-13T13:05:46.800
4978
6448
answer