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
Java8:基于时区外的DateTimeFormatter_Java_Date_Datetime_Timezone_Locale - Fatal编程技术网

Java8:基于时区外的DateTimeFormatter

Java8:基于时区外的DateTimeFormatter,java,date,datetime,timezone,locale,Java,Date,Datetime,Timezone,Locale,我原以为这很容易,但我在研究中没有运气 使用Java 8: 我希望将文件中日期的字符串表示形式解析为长日期。一般来说,这就像根据匹配模式创建DateTimeFormatter对象,然后对该对象调用parse一样简单 我的问题是,格式根据ie中生成此文件的区域设置而更改: NA/中国:MM/dd/yy hh:MM a DE/UK:日/月/年HH:MM JAP:yy/MM/dd HH:MM 目前,我已经实现了一个基于regex的解决方案,该解决方案确定了当前可能的区域设置的格式。这是可行的,但我正在

我原以为这很容易,但我在研究中没有运气

使用Java 8:

我希望将文件中日期的字符串表示形式解析为长日期。一般来说,这就像根据匹配模式创建DateTimeFormatter对象,然后对该对象调用parse一样简单

我的问题是,格式根据ie中生成此文件的区域设置而更改:

NA/中国:MM/dd/yy hh:MM a

DE/UK:日/月/年HH:MM

JAP:yy/MM/dd HH:MM

目前,我已经实现了一个基于regex的解决方案,该解决方案确定了当前可能的区域设置的格式。这是可行的,但我正在寻找一个更好的解决方案,这样,如果添加了新的时区/区域设置,就不需要修改此方法

我希望我可以根据时区标记(从不同的文件中提取)创建一个格式化程序,如EST、CEST、JST等。根据我所发现的,您可以根据区域设置生成格式化程序,但我找不到从时区生成区域设置或格式化程序的方法


如果您有任何想法,我们将不胜感激。

尚未尝试,但可能会有所帮助?如果您收到的时区(JAP、DE)是java时区格式,那么在构造SimpleDataFormatter时,您可以设置该时区并解析日期。否则,您可能需要维护传入时区和相应java时区格式之间的映射,以创建泛型方法。@fge这是我正在研究的方法之一,但它采用的是区域设置而不是时区。@Nambari很遗憾,我没有看到采用时区参数的SimpleDataFormatter构造函数。。。仅仅是一个本地的井,这是很正常的,不是吗?我想你必须建立你的时区区域地图。。。除非已经有了,否则我不知道