0

わかりました、この問題が多くの場所で何度も尋ねられていることは理解していますが、まだこれを機能させることができませんでした. APIjava.util.Dateと同様に試しました。JodaTime

私の質問は、アプリが実行されているタイムゾーンを考慮して現在の日付と時刻を返す方法です。これは、現在の日時を返すために私が書いたメソッドです。問題は、常に UTC 時刻が返されることです。

private String getCurrentDate()
{
    DateTime currentDate = new DateTime(DateTimeZone.getDefault());
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM hh:mm");
    String dateNow = formatter.format(currentDate);
    return dateNow;
}

助けてくれてありがとう!

4

2 に答える 2

1
private String getCurrentDate()
{
      final DateFormat format = DateFormat.getDateTimeInstance();
      format.setTimeZone(Calendar.getInstance().getTimeZone());
      return format.format(new Date());
}

これでうまくいくはずです。実際のローカル タイムゾーンを取得するのが難しい部分です。しかし、CalendarJava のクラスはそのトリックをうまく実行します。

そのままおDateFormat使いいただくこともできますSimpleDateFormat

于 2012-09-19T16:18:47.710 に答える
0

DateFormat(およびSimpleDateFormat) デフォルトは JVM のタイムゾーンです。これは、コンピューターのタイムゾーンである必要があります。

DateFormat format = new SimpleDateFormat("dd-MMM hh:mm");
System.out.println(format.format(new Date()));

ローカル タイムゾーンで印刷されます。を呼び出すことで、いつでも DateFormatのタイムゾーンを明示的に設定できsetTimeZoneます。

format.setTimeZone(TimeZone.getTimeZone("PDT"));
于 2012-09-19T16:12:44.647 に答える