0
  private String target_time_zone = "Australia/Hobart";
  private String format    = "MM/dd/yyyy HH:mm:ss z";


  public static void main(String args[]) throws ParseException {

        Date date = Calendar.getInstance().getTime();
        TZFormat tzFormat = new TZFormat();
        System.out.println("Converted TZ Date: "+ tzFormat.TZF(date));



  }

  public Date TZF(Date dt) throws ParseException {

        TimeZone tz = TimeZone.getTimeZone(target_time_zone);     
        SimpleDateFormat date_format_gmt = new SimpleDateFormat(format);
        date_format_gmt.setTimeZone(tz);
        SimpleDateFormat date_format_gmt1 = new SimpleDateFormat(format);
        date_format_gmt1.setTimeZone(tz);

        System.out.println("formated value: "+ date_format_gmt.format(dt));


       return date_format_gmt1.parse(date_format_gmt.format(dt));
  }

出力:

formated value: 11/15/2012 03:16:11 EST
Converted TZ Date: Wed Nov 14 21:46:11 IST 2012

実際、私の要件は、日付を target_time_zone timeZone の形式に変換し、変換された日付を返すことです。

 private String target_time_zone = "Australia/Hobart";
 private String format     = "MM/dd/yyyy HH:mm:ss z";

ここで発生するのは、TZF メソッドでフォーマットされた date_format_gmt.format(dt) で、以前の値 (実際の時間) を表示している値を解析するときに、指定された TimeZone に日付がフォーマットされます。

選択したタイム ゾーンで Date オブジェクトを取得する方法。

4

1 に答える 1

1

Dateオブジェクトは常にミリ秒単位の時間 (エポック時間) を表し、タイムゾーン情報は含まれません。文字列として作成するformatと、指定されたタイムゾーンで必要な形式でのみ出力されます。

于 2012-11-14T16:23:40.987 に答える