我试图以 yyyyMMdd 的格式创建 joda LocalDate,但每次我解析它以创建对象时,它都会无缘无故地插入像 yyyy-MM-dd 这样的连字符。
DateTimeFormatter format = DateTimeFormat.forPattern("yyyyMMdd");
LocalDate d = format.parseLocalDate("20150101");
有没有办法让它最终看起来像 20150101 还是永远是 2015-01-01?
最佳答案
解决方案是不使用toString()
方法:
DateTimeFormatter format = DateTimeFormat.forPattern("yyyyMMdd");
LocalDate d = format.parseLocalDate("20150101");
System.out.println(format.print(d)); // 20150101
System.out.println(d); // using toString(): 2015-01-01
很简单,不是吗?对我来说,使用连字符的形式更具可读性,因此这是方法 toString()
的标准输出的自然选择。
顺便说一句:这两个变体都是有效的 ISO-8601 字符串。不带连字符的形式称为“基本日期”,而带连字符的形式称为“扩展日期”。
关于java - Joda DateTimeFormat 没有 - 分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28801828/