[TIPS]端末に設定されている日付フォーマットの取得

公開日: 開発TIPS | , ,

android.text.format.DateFormat クラスの getDateFormat() で取得できる。

例)

SimpleDateFormat sdf;<br />
sdf=(SimpleDateFormat)DateFormat.getDateFormat(this);<br />
String pattern=sdf.toPattern();

ちなみに、SimpleDateFormat でのPattern取得には toPattern()toLocalizedPattern() の2種類存在するのですが、違いが良く分かりません・・・orz

 

Settings.System.getString() でも取得できる・・・が

String pattern = Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);

この方法だと、設定を標準にしているとnullや空白の文字列が返ってくるので注意。

あと、区切り文字も違っていたりする。 getDateFormatの方は各localeに合った区切り文字で、getStringの方は一律 -(マイナス) が使われるもよう(全ての環境で調べた訳では有りません)

 

ロケール別デフォルトDateFormatリスト

ついでなので、ロケール別に設定されているデフォルトのDateFormatを調べてみました。
まぁ、誰得リストだことw

Language Locale DateFormat
アラビア語 ar "M/d/yyyy"
チェコ語 cs "d. M. yyyy"
チェコ語 (チェコ共和国)* cs_CZ "d. M. yyyy"
デンマーク語 da "M/d/yyyy"
デンマーク語 (デンマーク) da_DK "M/d/yyyy"
ドイツ語 de "dd.MM.yyyy"
ドイツ語 (オーストリア)* de_AT "dd.MM.yyyy"
ドイツ語 (ベルギー) de_BE "dd.MM.yyyy"
ドイツ語 (スイス)* de_CH "dd.MM.yyyy"
ドイツ語 (ドイツ)* ** de_DE "dd.MM.yyyy"
ドイツ語 (リヒテンシュタイン)* de_LI "dd.MM.yyyy"
ドイツ語 (ルクセンブルグ) de_LU "dd.MM.yyyy"
ギリシャ語 el "M/d/yyyy"
ギリシャ語 (ギリシャ) el_GR "M/d/yyyy"
英語 en "yyyy-MM-dd"
英語 (オーストラリア)* en_AU "M/d/yyyy"
英語 (ベルギー) en_BE "M/d/yyyy"
英語 (ボツワナ) en_BW "M/d/yyyy"
英語 (ベリーズ) en_BZ "M/d/yyyy"
英語 (カナダ)* en_CA "M/d/yyyy"
英語 (イギリス)* ** en_GB "M/d/yyyy"
英語 (中華人民共和国香港特別行政区) en_HK "M/d/yyyy"
英語 (アイルランド) en_IE "M/d/yyyy"
英語 (インド) en_IN "M/d/yyyy"
英語 (ジャマイカ) en_JM "M/d/yyyy"
英語 (マーシャル諸島共和国) en_MH "M/d/yyyy"
英語 (マルタ) en_MT "M/d/yyyy"
英語 (ナミビア) en_NA "M/d/yyyy"
英語 (ニュージーランド)* en_NZ "M/d/yyyy"
英語 (フィリピン) en_PH "M/d/yyyy"
英語 (パキスタン) en_PK "M/d/yyyy"
英語 (シンガポール)* en_SG "M/d/yyyy"
英語 (トリニダード・トバゴ) en_TT "M/d/yyyy"
英語 (アメリカ合衆国)* ** en_US "M/d/yyyy"
英語 (アメリカ合衆国) en_US_POSIX "M/d/yyyy"
英語 (アメリカ領ヴァージン諸島) en_VI "M/d/yyyy"
英語 (南アフリカ) en_ZA "M/d/yyyy"
英語 (ジンバブエ) en_ZW "M/d/yyyy"
スペイン語 es "dd/MM/yyyy"
スペイン語 (スペイン)* ** es_ES "dd/MM/yyyy"
スペイン語 (アメリカ合衆国)** es_US "dd/MM/yyyy"
フィンランド語 fi "M/d/yyyy"
フランス語 fr "dd/MM/yyyy"
フランス語 (ベルギー)* fr_BE "dd/MM/yyyy"
フランス語 (カナダ)* fr_CA "dd/MM/yyyy"
フランス語 (スイス)* fr_CH "dd/MM/yyyy"
フランス語 (フランス)* ** fr_FR "dd/MM/yyyy"
フランス語 (ルクセンブルグ) fr_LU "dd/MM/yyyy"
フランス語 (モナコ) fr_MC "dd/MM/yyyy"
ヘブライ語 iw "M/d/yyyy"
クロアチア語 hr "M/d/yyyy"
ハンガリー語 hu "M/d/yyyy"
インドネシア語 in "M/d/yyyy"
イタリア語 it "dd/MM/yyyy"
イタリア語 (スイス)* it_CH "dd/MM/yyyy"
イタリア語 (イタリア)* ** it_IT "dd/MM/yyyy"
日本語 ja "yyyy/MM/dd"
日本語 (日本)* ** ja_JP "yyyy/MM/dd"
韓国語 ko "yyyy. M. d."
韓国語 (大韓民国)* ** ko_KR "yyyy. M. d."
ノルウェー語 (ブークモール) nb "M/d/yyyy"
ノルウェー語 (ブークモール) (ノルウェー) nb_NO "M/d/yyyy"
オランダ語 nl "dd-MM-yyyy"
オランダ語 (ベルギー)* nl_BE "dd-MM-yyyy"
オランダ語 (オランダ)* nl_NL "dd-MM-yyyy"
ポーランド語 pl "dd.MM.yyyy"
ポーランド語 (ポーランド)* pl_PL "dd.MM.yyyy"
ポルトガル語 pt "M/d/yyyy"
ポルトガル語 (ブラジル)** pt_BR "M/d/yyyy"
ポルトガル語 (ポルトガル) pt_PT "M/d/yyyy"
ルーマニア語 ro "M/d/yyyy"
ロシア語 ru "dd.MM.yyyy"
ロシア語 (ロシア)* ** ru_RU "dd.MM.yyyy"
スロバキア語 sk "M/d/yyyy"
セルビア語 sr "M/d/yyyy"
スウェーデン語 sv "M/d/yyyy"
スウェーデン語 (スウェーデン) sv_SE "M/d/yyyy"
タイ語 th "M/d/yyyy"
トルコ語 tr "M/d/yyyy"
トルコ語 (トルコ) tr_TR "M/d/yyyy"
ウクライナ語 uk "M/d/yyyy"
中国語 zh "yyyy-M-d"
中国語 (中国)* ** zh_CN "M/d/yyyy"
中国語 zh_HANS "M/d/yyyy"
中国語 (中国) zh_HANS_CN "M/d/yyyy"
中国語 zh_HANT "M/d/yyyy"
中国語 (台湾) zh_HANT_TW "M/d/yyyy"
中国語 (台湾)* ** zh_TW "M/d/yyyy"

このリストはAVD(froyo)で作成しました。
* AVD(froyo)のSettings/Select languageで選択できるロケール
** N1(FRG83)
のSettings/Select languageで選択できるロケール

日本の標準である、年月日の並びは、意外にも日本と韓国の2カ国だけなのですね。

なるほどそういえば、Calendar Widget を作って間もない頃、年月日にしか対応しておらず、海外の人から文句コメントを複数貰ったのですが、これじゃしょうがないですよね。納得できました・・・

 

参考リンク

http://android.git.kernel.org/?p=platform/packages/apps/Settings.git;a=blob;f=src/com/android/settings/DateTimeSettings.java;h=5b38651ce8507466fb00773664ae594012fc8f6f;hb=HEAD

 

関連記事

no image

[TIPS] カレンダーアプリの起動方法

TIPSと言う名のメモ書き 基本的に、自作のアプリから他のアプリを起動するにはインテントを利用しま

記事を読む

no image

[TIPS]String型とbyte配列の相互変換

普通のアプリ作成では、あまり使うことは無いかなと思いますが、外部と通信するアプリを作る場合に時々使う

記事を読む

no image

[TIPS]リストビューの飛び出すハンドル

TIPSと言う名のメモ書き リストピューの項目が多い時に、よく見るアレ。 普通のスクロールバ

記事を読む

no image

[TIPS]アクティビティの見た目をダイアログにする方法

TIPSと言う名のメモ書き AndroidManifest.xml ファイルの <activ

記事を読む

no image

[TIPS]文字にドロップシャドウを付ける方法

実は TextView には影を付ける為のパラメーターが有るので、簡単にドロップシャドウが付けられま

記事を読む

no image

[TIPS]ImageViewで9patchを表示する方法

ImageView に 9patchのPNG画像のリソースを指定する場合、backgroundに指定

記事を読む

no image

[TIPS] ウィジェットサイズについて

これは、開発の際に調べて判ったことのまとめで、TIPSと言う名のメモ書きです。 ウィジェットのサイ

記事を読む

no image

Android 3.2のズーム機能について

Android 3.2 から、大画面(xlarge)に対応していないアプリの画面を拡大して表示する機

記事を読む

no image

[TIPS]リストビューに背景を指定した時の問題

ListViewに単純に背景を指定しても、画面をタッチしてスクロールしたりすると何故だか背景が真っ黒

記事を読む

no image

[TIPS]Bluetooth SPPのUUID

Bluetoothの接続には、UUIDを指定しないといけないらしい。 その詳細は良く分かりませんが

記事を読む

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑