Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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中的日期格式_Java_Date - Fatal编程技术网

如何用不同的语言环境解析Java中的日期格式

如何用不同的语言环境解析Java中的日期格式,java,date,Java,Date,我在使用英语操作系统的非英语区域设置的Date.parse方法方面遇到问题。 我正在使用Date.parse方法解析输入的日期值。对于不同的地区,情况会有所不同。这里有一些例子。 2016年2月3日00:00英语 2016年2月1日00:00德国 2016-2-01 00:00日语 因此,对于德语区域设置,上面的字符串01.Feb.2016 00:00传递到解析 try { Date.parse( value );

我在使用英语操作系统的非英语区域设置的Date.parse方法方面遇到问题。 我正在使用Date.parse方法解析输入的日期值。对于不同的地区,情况会有所不同。这里有一些例子。 2016年2月3日00:00英语 2016年2月1日00:00德国 2016-2-01 00:00日语

因此,对于德语区域设置,上面的字符串01.Feb.2016 00:00传递到解析

            try
            {
                Date.parse( value );
            }
            catch( IllegalArgumentException e )
            {
                valid_value= false;
            }
如果值为2016年2月1日00:00,则它将进入捕捉块。 请帮助我如何验证值或转换英语语言环境可接受的值

您可以使用DateFormat.getInstance为您的区域设置获取格式化程序的特定实例:

DateFormat=DateFormat.getInstanceSHORT,语言环境;
您可以使用以下代码

//Germany local date
Date date = new Date();
DateFormat dateFormat;
dateFormat = DateFormat.getDateInstance(DateFormat.SHORT,Locale.GERMANY);
dateFormat.format(date);


您应该具有DateFormat.getDateInstanceint样式、区域设置,您可以参考SimpleDateFormat上的文档,这通常是满足所有解析需求的方法…感谢您的回复,实际上,我阅读了该文档并实现了相同的代码,但对于德语语言环境,它不接受2016年2月1日00:00起的字符e。在本例中,它返回的格式为dd.MM.YY,而不是德语语言环境的dd.mmm.YYYY。很不幸,如果不想自己定义格式,则只能从预定义的格式中进行选择。短,中,长,满。如果两者都不是您要寻找的,您可能必须为每个要支持的语言环境指定自定义格式。@Jaydeep try MEDIUM而不是shorth这可能有助于创建新的SimpleDataFormatDD MMM yyyy语言环境。GERMANY@Vaseph这将是德国的硬编码。我不适合在其他地方使用。
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.GERMANY);
 simpleDateFormat.format(date);