1

我已经搜索了很多次,但我没有找到我真正需要的东西,我写这个是为了找到UTC时区:

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        df.setTimeZone(TimeZone.getTimeZone("Europe/Istanbul"));
        String gmtTime = df.format(new Date());
        Date gmtTime_ =null;
        try {
            gmtTime_ = df.parse(gmtTime);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  

但我需要UTC+2时区,我怎样才能得到那个时区?

4

1 回答 1

1

如果您愿意切换到一个像样的日期时间库,而不是与 Java 捆绑在一起的臭名昭著的麻烦 java.util.Date 和 java.util.Calendar 类,请阅读下面的示例代码。

两个不错的 Java 库是Joda-Time和与 Java 8 捆绑在一起的新java.time 包(受 Joda-Time 启发,由JSR 310定义)。

乔达时间

这是一些使用 Joda-Time 2.3 的示例代码。

java.util.Date date = new java.util.Date();

// Convert a Date into a Joda-Time DateTime.
// Specify a time zone rather than rely on default.
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Istanbul" );
DateTime dateTime = new DateTime( date, timeZone );
DateTime dateTimeUtc = dateTime.withZone( DateTimeZone.UTC );

转储到控制台...</p>

System.out.println( "date: " + date );
System.out.println( "dateTime: " + dateTime );
System.out.println( "dateTimeUtc: " + dateTimeUtc );

运行时……</p>

date: Mon Mar 31 08:13:37 PDT 2014
dateTime: 2014-03-31T18:13:37.314+03:00
dateTimeUtc: 2014-03-31T15:13:37.314Z
于 2014-03-31T15:18:43.993 回答