Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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中显示可由任何DateTimeFormatter模式解析的日期?_Java_Datetime_Datetime Format - Fatal编程技术网

如何在Java中显示可由任何DateTimeFormatter模式解析的日期?

如何在Java中显示可由任何DateTimeFormatter模式解析的日期?,java,datetime,datetime-format,Java,Datetime,Datetime Format,我正在使用一个使用大量DateTimeFormat解析的软件,为了最大限度地减少错误,我想知道是否可以以某种方式表示日期字符串,使其可以被任何DateTimeFormat模式解析。理想情况下,其工作原理如下: String date = "...." DateTimeFormatter format = DateTimeFormat.forPattern(any pattern I want); DateTime result = format.parseDateTime(date); 或者日

我正在使用一个使用大量DateTimeFormat解析的软件,为了最大限度地减少错误,我想知道是否可以以某种方式表示日期字符串,使其可以被任何DateTimeFormat模式解析。理想情况下,其工作原理如下:

String date = "...."
DateTimeFormatter format = DateTimeFormat.forPattern(any pattern I want);
DateTime result = format.parseDateTime(date);
或者日期必须遵循模式吗?感谢您的帮助

使用SimpleDataFormat


SimpleDateFromat允许您设置自己的日期模式。例如dd/mm/yyyy、mm/dd/yyyy、yyyy-mm-dd等。。
这可以让你更好地了解日期模式以及如何使用它

不,你不能一刀切。想一想,如果你的字符串根本不是一个合法的日期,比如hello,你将如何解析它

java.time Java8及更高版本包括该框架。time模式可能包含[]来标记可选部分。这给了您一些灵活性。假设您使用以下格式:

M[M]['/']['-']['.]d[d]['/']['-']['.]yyyy[''']['T']['']h[h]:mm:ss 因此,在本例中,字符串可能有一个或两个数字指定月、日和小时。月、日和年可以用.、-等分隔。例如,使用上述格式,将成功解析以下字符串:

1/10/1995 9:34:45 01-10-1995 09:34:45 01.10.1995T09:34:45 …等等


我编写了一个具有一组模式的实用程序。一旦它得到一个字符串,它就会尝试使用集合中的所有模式对其进行解析,并查看是否使用其中一个模式成功。如果您正确地编写了这样一组模式,您可以确保您的util支持表示有效日期的任何可能字符串。

这并不能回答问题。海报正在寻找一种最有可能不存在的通用模式,你所建议的是一种非常具体的模式。我知道如何使用日期模式,但我需要的是一个日期字符串,它类似于一刀切,也就是说,它可以被任何日期模式解析,希望这是一个明智的答案。如上所述,对于每一种可能的输入,都没有最终的模式。例如,1/2/3,哪部分是缩写的年、月和日?
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
Date d=sdf.parse("07/12/2014");