我有一个奇怪的问题我用Java来获取当前日期,但是我在几个设备上获得了不同的结果,一个正确的&在另一个错误。 这是我的代码:
public String getCurrentDate() {
/// get date
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Tehran"));
Date date = new Date();
System.out.println(dateFormat.format(date)); //2017-11-13 18:20:46 correct time is 11am
return dateFormat.format(date);
}
在提供错误结果的设备上,我设置自动时区使用网络提供的时区&设备的时间是正确的。
答案 0 :(得分:0)
正在使用真实设备进行测试吗?
您还可以尝试使用Android的日历类。欲了解更多信息,请访问(https://developer.android.com/reference/java/util/Calendar.html)
检查以下示例:
Calendar current_time_cal = Calendar.getInstance();
current_time_cal.setTimeZone(TimeZone.getTimeZone("Asia/Tehran"));
int hours = current_time.get(Calendar.HOUR);
int current_am_pm = current_time.get(Calendar.AM_PM);
current_time_cal.set(Calendar.HOUR_OF_DAY, (hours == 0)? 12 : hours);
current_time_cal.set(Calendar.MINUTE, current_time.get(Calendar.MINUTE));
current_time_cal.set(Calendar.SECOND, 0);
答案 1 :(得分:0)
试试这个:
Calendar c = Calendar.getInstance();
System.out.println("Current time: " + c.getTime());
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c.getTime());
答案 2 :(得分:-1)
您可以使用此方法从设备获取当前时间:
public String getCurrentDate() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
String date = sdf.format(calendar.getTime());
return date;
}
此方法将当前日期作为字符串返回。