Seb*_*ber 5 java spring date-format messageformat simpledateformat
MessageFormat类很酷,因为我们可以插入参数并直接使用它进行格式化.这使我能够直接在消息包属性文件中轻松覆盖日期格式.
举个例子:
MessageFormat.format("Test inserting a date param here: {0,date,dd/MM/yyyy HH'h'mm} -> OK cool", new Date() );
Run Code Online (Sandbox Code Playgroud)
但是,如果我需要在不同的时区显示日期怎么办?
我知道我可以在将它们注入我的包中之前格式化所有日期,但是格式化每个显示的日期都很麻烦...
在工作中我们正在使用
org.springframework.context.support.ReloadableResourceBundleMessageSource
我可能会尝试覆盖它并创建我自己的MessageFormat,它会考虑使用好的时区.但它可能不适合我们的架构.
你还有其他选择吗?
我只是在看同样的问题。这个解决方案看起来很有趣:https : //groups.google.com/d/msg/comp.lang.java.programmer/1AJIpwtn5HA/zd3Sw8IJrTQJ
public class Format {
public static void main(String argv[]) {
MessageFormat mf = new MessageFormat("The time is: {0, time, HH:mm}");
TimeZone tz = TimeZone.getTimeZone("GMT");
Object [] formats = mf.getFormats();
for (int i = 0; i < formats.length; i++) {
if (formats[i] instanceof SimpleDateFormat) {
((SimpleDateFormat)formats[i]).setTimeZone(tz);
}
}
Date date = new Date();
Object [] args = {date};
System.out.println(mf.format(args));
}
}
Run Code Online (Sandbox Code Playgroud)
想法是在 MessageFormat 中查看解析格式,并将 TimeZone 设置为日期格式。
| 归档时间: |
|
| 查看次数: |
5809 次 |
| 最近记录: |