根据英国时间戳生成文件

时间:2013-07-09 05:08:01

标签: java

我已经陷入了一个问题,我必须根据英国(英格兰)时间生成报告 我在2013年7月至2013年7月至今日上午5点58分发布了一份报告 而在印度它是10:28 AM现在文件生成应包括英国时间戳 但该文件没有我使用此时间戳

String currDate = new SimpleDateFormat("MM-dd-yyyy-HH-mm").format(new Date());
System.out.println("ABC_0101-"+currDate);

如果我错过了24小时格式的内容,请告知如何将英国时间加入文件标记

1 个答案:

答案 0 :(得分:3)

您只需设置格式化程序的时区:

TimeZone london = TimeZone.getTimeZone("Europe/London");
SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy-HH-mm", Locale.UK);
format.setTimeZone(london);

System.out.println("ABC_0101-" + format.format(new Date()));

as asides:

  • 这是一种非常奇怪的格式模式。如果它在你的控制之下,我会敦促你使用一些可自然排序的东西,例如: yyyy-MM-ddTHHmmss
  • 我已明确使用英国语言​​环境来确保使用英国日期符号。在这种情况下,它可能并不重要,但在其他情况下它可能。
  • 你确定他们真的想要英国时区而不是UTC吗?由于夏令时过渡,英国时区最终会出现一些模糊的值 - 使用UTC可能更有意义。
  • 如果你正在做很多日期/时间工作,你应该考虑使用Joda Time,这是一个比java.util.Date等更好的日期/时间库。