2

Android アプリケーションを作成しています。GregorianCalendar 変数があります。ロケールが US の場合は MM-dd-yyyy として、ロケールが EU の場合は dd-MM-yyyy として、この変数から日付を取得したいと考えています。各ロケール文字列をハードコーディングしたくありません。電話のロケールに依存させたいのです。

問題は、何十もの同様の質問を調べた後でも、これを機能させることができなかったことです。おそらくSimpleDateFormatまたはGregorianCalendar.get()またはgetDisplayName()を使用して、2行または3行のコードだと思います。

助けてくれてありがとう。

4

3 に答える 3

4

これを試して

    GregorianCalendar gc = ...
    String str = DateFormat.getDateInstance(DateFormat.SHORT).format(gc.getTime());

ところで、米国のデフォルトの日付形式 (SHORT) は、dd/MM/yyたとえば 30/05/13 です。

于 2013-05-30T13:49:29.897 に答える
2

これを試しましたか

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourcalender.getTime());

yourcalender は GregorianCalendar 変数です

于 2013-05-30T13:50:26.480 に答える
0

さらに良いのは、ユーザー独自の日付形式を使用しないことです。Locale.getLocale()ユーザーの優先ロケールを返します。これを使用して、ローカライズされたすべての値 (日付、時刻、通貨など) をフォーマットし、ユーザーが選択したフォーマットをユーザーに提供していることを知ることができます。

于 2013-05-30T14:08:29.200 に答える