2011-12-14 12 views
3

は、このフィールドのロケールは、ノルウェー語、ノルウェーのために設定されていることを考えると?jodatime DateTimeオブジェクトとロケール

Assert.assertNotNull(locale);//Is asserted 
MutableDateTime start = new MutableDateTime(2012,1, 10,10,0,0,0); 
start.setDayOfWeek(DateTimeConstants.SATURDAY); 
System.out.println(start.dayOfWeek().getAsText(locale)); 
System.out.println(locale.getISO3Language().toString()); 

出力は「土曜日、ノブ」である は、私は、ロケール固有の曜日名の文字列を自分で実装する必要がありますか?もしそうなら、jodatimeでオーバーライドするいくつかの基本オブジェクトまたはインタフェースがありますか?私は見つけられないようです。

+0

あなたの 'nb_NO'ロケールは利用できますか? http://docs.oracle.com/javase/tutorial/i18n/locale/identify.html –

+0

「MutableDateTime」を使用する特別な理由はありますか?そして、私のコードでは、適切な翻訳しか想定できないものが表示されます: "lrdrd" - ロケールが正しくセットアップ/パスされていますか? –

+0

いいえ、私はもう少しロケールを調べなければなりません。 パブリッククラスAvailableLocales {\t \t静的なパブリック無効メイン(文字列[] args){ \t \tロケールのリスト[] =にDateFormat:あなたがリンクされOracleのページからこのコードはのみ 強大な奇妙である " ARも" レンダリング.getAvailableLocales(); (ロケールaLocale:リスト)のため \t \t { \t \t \tのSystem.out.println(aLocale.toString())。私は週の選択に基づいてステップバイ日付ステップを変更することだし、それはメソッド内不変の値オブジェクトの範囲の周りにコピーする必要が見えたので、私は唯一のMutableDateTimeを使用してい \t \t} \t} } – MiB

答えて

1

あなたのコードは私のために正常に動作します:

[system:/tmp]$ cat Loc.java 
import org.joda.time.*; 
import java.util.Locale; 

class Loc { 
    public static void main(String[] args) { 
     Locale locale = new Locale("nb","no"); 
     MutableDateTime start = new MutableDateTime(2012,1, 10,10,0,0,0); 
     start.setDayOfWeek(DateTimeConstants.SATURDAY); 
     System.out.println(start.dayOfWeek().getAsText(locale)); 
     System.out.println(locale.getISO3Language().toString()); 
    } 
} 
[system:/tmp]$ java Loc 
lørdag 
nob 

しようとするいくつかのこと:

  • new Locale("nb", "NO")(国/地域がsupposed to be case-insentiveですが、それはショットの価値がある)
  • てみてくださいを使用してみてくださいnew Locale("no", "NO")またはnew Locale("nn", "NO")を使用しています - Nyorskはあなたが探しているものではないかもしれませんが、動作しますか?グーグルでは、no_NOのエイリアスとしてnb_NOを扱うプラットフォームがあるようですね。それが機能するかどうかを知るだけで役立つかもしれません。
  • nb_NOロケールがavailableであることを確認してください。おそらくgetISO3Language()が動作しているようです。
+0

あなたの試乗と参考に感謝します。私はあなたの提案を試み、報告を返すでしょう。 – MiB

+0

オラクルへのリンクが付いたあなたの親切な反応は正しい軌道に乗った。私が使用していたopenjdk7ポートが不完全で、使用可能なすべてのロケールを取得するときに "ar"と "be"を取得して証明し、Appleにjdk1.5を提供してプロジェクトを変更したことが判明しました。 "no_NO"はまだ正常に動作せず、スウェーデン語で私に平日を与えました(私のシステムはスウェーデン語に設定されています)。 Apples jdk1.5のための適切なコードは少なくとも単に "no"でした。その結果、あなたと同じ結果が得られました: "lørdag "または " "ありがとうございました! – MiB

+0

ほとんどの場合Robsの回答が正しいと思っていますが、Apples ** jdk1.5 **の場合、OS X 10.5.8では「** no **」だけが私が探していた結果を出しました。 – MiB

関連する問題