当前位置: 首页 > 知识库问答 >
问题:

如何在java中解析此日期格式(dd-m-y)[重复]

万俟嘉珍
2023-03-14

我在用Java中的SimpleDataFormat类解析日期格式dd-m-y时遇到了一些问题。

那么,对于这种日期格式类型(2014年10月12日)是否有任何日期格式化程序?

共有3个答案

壤驷棋
2023-03-14

第一步:使用所需格式和模式()的方法创建DateTimeFormatter第二步:使用创建两个LocalDate对象。parse(CharSequence文本,DateTimeFormatter格式)方法第三步:使用firstDate。直到(第二个日期)并接收一个期间对象第四步:使用。getDays()方法从期间对象获取天数。

章增
2023-03-14

其他答案可能有用,但有一个小细节大多数人经常忘记。

您输入的月份名称(“oct”)是英文的(或者其他语言,其中十月的缩写是“oct”,但我在这里假设为英文,因为这不会改变答案)。

创建SimpleDataFormat时,它使用JVM默认区域设置(由类java.util.locale表示)。在您的例子中,newsimpledateformat(“dd-MMM-yy”)起作用,因为JVM的默认语言环境可能已经是英语了。

但是默认的语言环境可以更改,即使是在运行时,也可以由运行在同一JVM中的其他应用程序更改。换句话说,您无法控制它,也无法保证默认值始终为英语。

在这种情况下,如果您知道输入总是用英语,那么明确地使用java更安全、更好。util。格式化程序中的区域设置

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy", Locale.ENGLISH);

更好的方法是使用Java8的日期/时间API(如果您可以使用的话)。这个API比SimpleDataFormat好得多,因为它解决了这个类的许多问题。

代码在开始时可能看起来更难,但完全值得学习新的应用编程接口:

DateTimeFormatter fmt = new DateTimeFormatterBuilder()
    // case insensitive, for month name
    .parseCaseInsensitive()
    // pattern for day-month-year
    .appendPattern("dd-MMM-yy")
    // use English for month name
    .toFormatter(Locale.ENGLISH);
System.out.println(LocalDate.parse("12-oct-14", fmt));
颛孙轩昂
2023-03-14
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy")

如果您使用的是Java8或Java9,那么请参考以下内容

 类似资料:
  • 问题内容: 我想解析日期字符串,例如使用格式。但是我有一个例外。 问题答案: 您的解析字符串不正确,正如别人提到的那样 要正确解析,您需要使用英语语言环境,否则,如果您的默认语言环境不是英语,则可能会失败 DateFormat df = new SimpleDateFormat(“MMM dd, yyyy”, Locale.ENGLISH); Date dt = df.parse(“Februar

  • 我有格式为“2020/02/25 23:58:08”的日期字符串。我想把它解析为‘2020-02-25’。 注意:最初的日期是字符串格式,转换后无论是日期格式还是字符串格式都无关紧要。 文件js公司 当我运行这个程序时,我得到了未捕获的引用错误:gi未定义,gi是全局替换

  • 问题内容: 我在中收到格式日期。我如何解析它得到和。 ISO格式的日期: 问题答案: 一些参考 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html 希望能帮助到你

  • 我想以yyyy-mm-dd格式存储今天的日期。在存储之前,我将今天的日期格式化,并再次解析格式化后的字符串。它以不同于我想要的格式给出了输出日期。我如何获得日期,将其格式化为' yyyy-mm-dd '并再次将其转换为日期,并希望输出格式为' yyyy-mm-dd '。请找到下面的代码,告诉我哪里错了 我得到的上述代码的输出是星期四 Mar 07 00:00:00 GMT 2013.但我希望输出为

  • 问题内容: 我知道JavaScript日期对象中的其他可能格式,但是我没有了解如何格式化日期以进行格式化。 如果您遇到这样的问题,请告诉我。 问题答案: 试试这个 如果要在值<10的前导零,请使用此数字扩展名 应用于先前的代码: [ edit 2019]使用ES20xx,您可以使用模板文字和新的字符串扩展名。

  • 如何转换以下日期: 2022年4月29日至20222年4月29日 因此,基本上我输入的日期格式为Mon-dd,yyyy,应该转换为mm/dd/yyyy