java – 更改日期格式
如果输入为01-01-2015,则应更改为2015-01-01.
如果输入为2015-01-01,则应更改为01-01-2015. 我使用SimpleDateFormat但没有得到正确的输出: //Class to change date dd-MM-yyyy to yyyy-MM-dd and vice versa public class ChangeDate { static SimpleDateFormat formatY = new SimpleDateFormat("yyyy-MM-dd"); static SimpleDateFormat formatD = new SimpleDateFormat("dd-MM-yyyy"); //This function change dd-MM-yyyy to yyyy-MM-dd public static String changeDtoY(String date) { try { return formatY.format(formatD.parse(date)); } catch(Exception e) { return null; } } //This function change yyyy-MM-dd to dd-MM-yyyy public static String changeYtoD(String date) { try { return formatD.format(formatY.parse(date)); } catch(Exception e) { return null; } } } 我想要一些自动检测日期模式并更改为其他格式的条件. 解决方法
正则表达式是矫枉过正
对于日期时间的工作,不需要打扰regex. 只需尝试使用一种格式进行解析,捕获预期的异常.如果确实抛出了异常,请尝试使用其他格式进行解析.如果抛出异常,那么您知道输入意外地不是两种格式. java.time 您正在使用现在由Java 8及更高版本内置的java.time框架取代的旧的麻烦的日期时间类.新课程的灵感来自非常成功的Joda-Time框架,旨在作为其继承者,在概念上类似但重新设计.由JSR 310定义.由ThreeTen-Extra项目扩展.见Oracle Tutorial. LOCALDATE的 新类包括一个 格式化程序 您的第一种格式可能是标准的ISO 8601格式,YYYY-MM-DD.默认情况下,此格式用于java.time. 如果由于输入与ISO 8601格式不匹配而导致第一次解析尝试失败,则抛出 LocalDate localDate = null; try { localDate = LocalDate.parse( input ); // ISO 8601 formatter used implicitly. } catch ( DateTimeParseException e ) { // Exception means the input is not in ISO 8601 format. } 另一种格式必须由与您使用SimpleDateFormat类似的编码模式指定.因此,如果我们从第一次尝试中捕获异常,请进行第二次解析尝试. DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "MM-dd-yyyy" ); LocalDate localDate = null; try { localDate = LocalDate.parse( input ); } catch ( DateTimeParseException e ) { // Exception means the input is not in ISO 8601 format. // Try the other expected format. try { localDate = LocalDate.parse( input,formatter ); } catch ( DateTimeParseException e ) { // FIXME: Unexpected input fit neither of our expected patterns. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – JTable单元格中的JComboBox
- java – 如何从Iterable / Collection创建TreeMultimap?
- 我可以使用java.util.Set为Java中的DFA实现状态转换
- java – NFC与NFC工具,创建NDEF应用程序
- java – Jersey’NoContent’响应返回200而不是204
- 简单实现java音乐播放器
- Pyspark:错误 – 在向驱动程序发送端口号之前退出Java网关
- Java – 对非静态字段列表进行静态引用
- java – 使用ManagerServlet进行Tomcat多线程部署
- java – 获取Rest Assured的重定向网址?