2014-09-01 62 views
0

我需要为当前日期时间转移到ios8601格式,是这样的:一种优雅的方式为当前日期时间转移到ISO 8601格式

日期和时间格式:01 Jan 2014 BST 12:00 PM

最终在我的JSP ,我希望把这些格式化日期

<time datetime="{date and time in ISO8601}">{date and time in format: 01 Jan 2014 BST 12:00 PM}</time> 

我目前的尝试:

TimeZone tz = TimeZone.getTimeZone("BST"); 
    DateFormat df = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm'Z'"); 
    df.setTimeZone(tz); 
    String nowAsISO = df.format(new Date()); 

但结果does not看起来像什么,我希望得到......

+0

你想要ISO-8601格式吗?还是你想'01 Jan 2014 BST 12:00 PM'?两者不一样。 – 2014-09-01 14:31:37

+0

01 Jan 2014 BST 12:00 PM,这是我想要的.. plz提供了一些代码示例是可能的,欢呼声 – seph 2014-09-01 14:33:08

+0

@seph这个例子甚至没有接近任何[ISO 8601](https:// en.wikipedia.org/wiki/ISO_8601)格式。没有一种格式使用月份名称,也不使用3个字母的时区代码。日期时间格式为'YYYY-MM-DDTHH:MM:SS.SSS±HH:MM',例如'2015-05-31T21:00:17 + 02:00'或'2015-05 -31T19:00:17Z'。 – 2015-06-02 01:37:32

回答

2

这种模式会给你你需要的东西:

SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy zzz HH:mm a"); 
format.setTimeZone(TimeZone.getTimeZone("Europe/London")); 
System.out.println(format.format(new Date())); 

打印:

01 Sep 2014 BST 15:37 PM

注意:我假设你正在寻找BST =英国夏令时,应该如上所述。如果您想要孟加拉国时间,请使用Asia/Dhaka作为时区指示符。另请注意,英国夏令时在1月1日不生效(如您的示例中所引用的)。

+0

cool thx:P我会试试 – seph 2014-09-01 14:43:18

相关问题