0

好吧,我知道这个问题已经在很多地方被问过很多次了,但我还不能让它工作。我尝试java.util.Date过以及JodaTimeAPI。

我的问题是如何在考虑我的应用程序运行的时区的情况下返回当前日期和时间。这是我编写的用于返回当前日期时间的方法。问题是,它总是向我返回 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(and 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 回答