【发布时间】:2014-02-07 10:09:22
【问题描述】:
如果没有必要,我只是不想重新发明轮子,所以我会问你以下问题,使用 saxparser 扩展将以下内容解析为 Java 日期的最简单方法是什么?
<start-date>
<year>2012</year>
<month>04</month>
<day>10</day>
</start-date>
if (currentQName.equals("start-date")) {
//return Java date the easiest way possible.
}
我的解决方案是保存所有三个而不是检查所有可能性,如果可能,我想避免这种情况。
棘手的是有来自 DTD 的限制,只有 YEAR 是强制性的,如果定义了月份,那么天也是强制性的。
谢谢!
【问题讨论】:
-
您可以添加只允许合理值的限制(例如,1-12 代表月份,1-31 代表天,+ 整数代表年份),但您不能处理闰年或年份 w/ 31 天。
-
@PeterJaloveczki 你到底在问什么? “Java 日期”是指 java.util.Date 对象吗?如果月+日是可选的,那么我看不出您如何期望从一年中创建一个像 j.u.Date 这样的日期时间对象。