是否可以创建一个 DateFormatter 将两位数年份转换为四位数年份?
在我的 Java 应用程序中,我使用 DateFormat
实例来解析日期输入。
DateFormat fmt;
fmt = DateFormat.getDateInstance(DateFormat.DEFAULT) // dd.MM.yyyy for de_DE
问题在于用户坚持以 31.12.11
的形式输入日期。
不幸的是,它被解析为 31.12.11
。 (ISO 格式中的 0011-12-31
) 相反,我希望解析的日期变为 31.12.2011
(ISO 格式中的 2011-12-31
格式)。
我可以修改日期格式以某种方式解析输入吗?
In my Java application I use a DateFormat
instance to parse date inputs.
DateFormat fmt;
fmt = DateFormat.getDateInstance(DateFormat.DEFAULT) // dd.MM.yyyy for de_DE
The problem is that the user insists to enter dates in the form 31.12.11
.
Unfortunately this is parsed to 31.12.11
. (0011-12-31
in ISO format) Instead I want the parsed date to become 31.12.2011
(2011-12-31
in ISO format).
Can I modify the date format to somehow parse inputs that way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您必须使用 dd.MM.yy 格式进行解析,并使用 yyyy-MM-dd 格式重新格式化
。有关设置模式的更多信息,请参阅 Java API。
http://download.oracle.com/javase/6 /docs/api/java/text/SimpleDateFormat.html
You will have to parse with a format of dd.MM.yy and re-format with a format of yyyy-MM-dd
See the Java API for more info on setting patterns.
http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
这里的解决方案非常简单,可以使用 SimpleDateFormat,其中包括方法
set2DigitYearStart(Date startDate)
。也许它看起来像这样。Your solution here is sufficiently simple as to allow for the use of SimpleDateFormat, which includes the method
set2DigitYearStart(Date startDate)
. Perhaps it looks something like this.是的,您可以使用 DateFormat.SHORT 而不是 DEFAULT 进行解析。
或者,尝试使用 SHORT 进行解析,然后尝试其他格式(如果不起作用)。
Yes, you could parse using DateFormat.SHORT instead of DEFAULT.
Or possibly, try to parse with SHORT, and then try other formats if that doesn't work.
您可以使用 SimpleDateFormat 解析此日期,但如何确定该日期是 1911 年还是 2011 年还是其他日期。您应该使用年份格式 yyyy。
You can parse this date using SimpleDateFormat but how you will determine that was 1911 or 2011 or anything else. you should use year format as yyyy.
如果您使用 GWT,则无法访问 SimpleDateFormat,因此这里有一些手动执行此操作的代码:
假设您已验证 dateText 是用空格分隔的。
If you use GWT, you don't have access to SimpleDateFormat, so here is some code to do it manually:
This assumes you have validated that the dateText is separated with spaces.
近似值:
可能适合也可能不适合您的需要......
An approximation:
May or may not fit your need...