带有日期参数的TimeZone和MessageFormat

带有日期参数的TimeZone和MessageFormat,第1张

概述MessageFormat类很酷,因为我们可以插入参数并直接使用它进行格式化.这使我能够直接在消息包属性文件中轻松覆盖日期格式.举个例子:MessageFormat.format('Test inserting a date param here: {0,date,dd/MM/yyyy HH'h'mm} -> OK cool', new Date()

messageformat类很酷,因为我们可以插入参数并直接使用它进行格式化.
这使我能够直接在消息包属性文件中轻松覆盖日期格式.

举个例子:

messageformat.format("Test inserting a date param here: {0,date,dd/MM/yyyy HH'h'mm} -> OK cool",new Date() );

但是,如果我需要在不同的时区显示日期怎么办?

我知道我可以在将它们注入我的包中之前格式化所有日期,但是格式化每个显示的日期都很麻烦…

在工作中我们正在使用

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));  }}

想法是在messageformat中检查已解析的格式,并将TimeZone设置为日期格式. 总结

以上是内存溢出为你收集整理的带有日期参数的TimeZone和MessageFormat全部内容,希望文章能够帮你解决带有日期参数的TimeZone和MessageFormat所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存