好吧,我知道这个问题已经在很多地方被问过很多次了,但是我还是不能解决这个问题。我尝试了java.util.Date
以及JodaTime
API。
我的问题是如何根据我的应用运行的时区返回当前日期和时间。这是我写的一个方法,它返回当前日期时间。问题是,它总是返回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;
}
感谢您帮助我!
答案 0 :(得分:1)
private String getCurrentDate()
{
final DateFormat format = DateFormat.getDateTimeInstance();
format.setTimeZone(Calendar.getInstance().getTimeZone());
return format.format(new Date());
}
这应该可以胜任。获得真正的本地时区的棘手部分。但Calendar
类的Java可以很好地解决这个问题。
作为DateFormat
,如果您愿意,还可以使用SimpleDateFormat
。
答案 1 :(得分: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"));