Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jodatime日期时间对象和区域设置_Java_Jodatime - Fatal编程技术网

Java jodatime日期时间对象和区域设置

Java jodatime日期时间对象和区域设置,java,jodatime,Java,Jodatime,鉴于已为挪威bokmål和挪威设置了现场地点: Locale locale = new Locale("nb","no"); 返回语言bokmål的正确字符串的方法中的代码片段缺少什么 Assert.assertNotNull(locale);//Is asserted MutableDateTime start = new MutableDateTime(2012,1, 10,10,0,0,0 ); start.setDayOfWeek(DateTimeConstants.SATURDAY

鉴于已为挪威bokmål和挪威设置了现场地点:

Locale locale = new Locale("nb","no"); 
返回语言bokmål的正确字符串的方法中的代码片段缺少什么

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());
输出为“星期六,nob
我是否需要自己实现特定于语言环境的工作日名称字符串?如果是这样的话,jodatime中是否有一些基本对象或接口要覆盖?我似乎找不到。您的代码对我来说运行正常:

[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
有几件事可以尝试:

  • 尝试使用
    新区域设置(“nb”,“NO”)
    (国家/地区是,但值得一试)
  • 尝试使用
    新区域设置(“no”、“no”)
    新区域设置(“nn”、“no”)
    -Nyorsk可能不是您想要的,但它有效吗?通过谷歌搜索,似乎有些平台可能会将
    nb\u NO
    视为
    NO\u NO
    的别名?这可能是有用的,只是要知道,如果这样做或不工作
  • 确保
    nb\u NO
    区域设置正确。这可能是因为
    getISO3Language()
    似乎有效

您的
nb\u否
语言环境是否可用?使用
MutableDateTime
有什么特殊原因吗?我的代码打印出我只能假设是正确的翻译:“lørdag”-您确定语言环境得到了正确的设置/传递吗?不,我必须进一步研究语言环境。您链接的Oracle页面中的这段代码只呈现“be-ar”,这非常奇怪:public类availablecales{static public void main(String[]args){Locale list[]=DateFormat.getavailablecales();for(Locale-aLocale:list){System.out.println(aLocale.toString());}我之所以使用MutableDateTime,是因为我正在根据周选择逐步修改日期,似乎没有必要在方法中复制一系列不可变的值对象。请注意,简短的区域设置列表“be,ar”是openjdk的,而不是Apple jdk1.5。感谢您的试驾和参考资料。我会尝试你的建议并向你汇报。你的善意回复和甲骨文的链接让我走上了正确的道路。我开始怀疑我使用的openjdk7端口是不完整的,并在获取所有可用的区域设置时仅获得“ar”和“be”就证明了这一点,并将我的项目更改为Apple提供的jdk1.5。“no_no”仍然无法正常工作,并以瑞典语为我提供了工作日(我的系统设置为瑞典语)。苹果jdk1.5的正确代码至少是简单的“否”。这给了我和你类似的结果:“勒达格·诺尔”。非常感谢。我希望Robs的回答在大多数情况下都是正确的,但是在苹果jdk1.5到OSX10.5.8的情况下,只有“否”给出了我想要的结果。