将 MySql DateTime 类型转换为更友好的类型
我有一个 Java Web 应用程序,它读取 MySql 数据库并返回 DateTime 字段。 将结果集中返回的日期时间字段转换为更具可读性的内容的最佳方法是什么?
目前,DateTime 字段打印为:
2008-12-14 16:30:00
,但我想要一些更用户友好的内容,例如:
2008 年 12 月 14 日 16:30
我正在使用 pojo 中的这些日期时间填充 ArrayList。 我想在添加到 arrayList 之前对它们进行格式化,这样我就可以在 JSP 中打印 arrayList 的内容。
I have a Java web app that reads a MySql db and returns DateTime fields. What is the best way to convert the DateTime fields returned in the resultset into something more readable?
Currently the DateTime fields print as:
2008-12-14 16:30:00
but I would like something more user friendly like:
14 Dec 2008 at 16:30
I am populating an ArrayList with these dateTimes from a pojo. I would like to format them before adding to the arrayList, so then I can just print the contents of the arrayList in the JSP.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
另一种选择是使用 JSTL。 格式化库可以轻松地以任何格式显示日期,并且支持 i18n。 优点是您可以将日期保留为 Date 对象并按原样操作它,但仅在需要显示时才转换它。 格式标签将如下所示:
正如我上面所说,它的一大优点是它支持 i18n,因此您可以以本地化格式显示日期。
完整的语法是:
Another option is to use the JSTL. The formatting library makes it easy to display a date in any format and it is i18n aware. The advantage is that you can leave the date as a Date object and manipulate it as such but only convert it when you need to display. The format tag will look like this:
Like I said above, one big advantage is that it is i18n aware so you can display the date in a localized format.
The full syntax is:
Mysql date_format()
Mysql date_format()
我更愿意在 Java 代码中使用
simpleDateFormat
,这样我的代码就不会绑定到任何数据库函数(我知道,原因很弱)。请注意,
SimpleDateFormat
不是线程安全的。 从文档中:I would prefer to use a
simpleDateFormat
in the Java code so my code is not bound to any database function (weak reason, I know).Be warned that
SimpleDateFormat
is not thread safe. From the documentation:数据库有什么样的抽象层? 它看起来像是一个简单的例子,对您用作字段类的任何内容进行子类化,并为您的格式添加一个方法。
What kind of abstraction layer do you have over the database? It looks like a simple case of subclassing whatever you're using as the field class, and adding a method for your format.
我推荐标签格式化选项,因为您拥有真实的数据(日期/时间),并且您在格式相关的页面级别进行格式化(并且您知道......例如,要应用的区域设置)。
如果您无论如何想格式化它并将字符串放入列表中,请使用 java.text.SimpleDateFormat 正如 Carlos Heuberger 所说。
I'd recommend the tag formatting option, because you have the real data (dates/times) and you format at page level where format is relevant (and you know.. by example, locale to apply).
If you anyway want to format it and put the strings into a List use
java.text.SimpleDateFormat
as Carlos Heuberger says.