我知道这个问题已被问到,但解决方案或是过时的,不支持Java 7或需要一个外部库(我希望避免,因为我不希望这个简单的用例另一个库)。如何比较UTC日期和Android中的当前UTC时间?
但基本上我有2个日期来自我的数据库和日期是UTC。我想以UTC获取设备的当前时间,并检查当前时间是否在开始日期和结束日期之间。目前,我将Db中的数据库日期作为UTC获取到手机,但当前时间与设备的时区一致,并且比较结果是错误的。
我知道这个问题已被问到,但解决方案或是过时的,不支持Java 7或需要一个外部库(我希望避免,因为我不希望这个简单的用例另一个库)。如何比较UTC日期和Android中的当前UTC时间?
但基本上我有2个日期来自我的数据库和日期是UTC。我想以UTC获取设备的当前时间,并检查当前时间是否在开始日期和结束日期之间。目前,我将Db中的数据库日期作为UTC获取到手机,但当前时间与设备的时区一致,并且比较结果是错误的。
大部分都是使用第三方lib中,因为他们更稳定的又是什么Java正在提供
获取本地时间UTC原因:
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(cal_Two.getTime());
输出:星期六11年1月25日: 15:29 UTC 2014
转换字符串日期:
String startDateString = "06/27/2007";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date startDate;
try {
startDate = df.parse(startDateString);
String newDateString = df.format(startDate);
System.out.println(newDateString);
} catch (ParseException e) {
e.printStackTrace();
}
查找日期之间的差异:
{
Date dt2 = new DateAndTime().getCurrentDateTime();
long diff = dt2.getTime() - dt1.getTime();
long diffSeconds = diff/1000 % 60;
long diffMinutes = diff/(60 * 1000) % 60;
long diffHours = diff/(60 * 60 * 1000);
int diffInDays = (int) ((dt2.getTime() - dt1.getTime())/(1000 * 60 * 60 * 24));
if (diffInDays > 1) {
System.err.println("Difference in number of days (2) : " + diffInDays);
return false;
} else if (diffHours > 24) {
System.err.println(">24");
return false;
} else if ((diffHours == 24) && (diffMinutes >= 1)) {
System.err.println("minutes");
return false;
}
return true;
}
非常感谢你!最后的代码snippit做了我所需要的 –
@JaySyko欢迎。接下来尝试更具体,以便我们能够以更好更快的方式为您提供帮助! :) 祝你今天愉快! – Smit
的[?我怎样才能在UTC或GMT Java中的当前日期和时间]可能的复制(http://stackoverflow.com/questions/308683/如何获取当前的日期和时间在utc或gmt在java) –
如果你不提供一些上下文的代码,这将是一个难以回答的问题。我们不知道你是否正在处理字符串,Java日期,......这似乎是一个纯粹的Java问题,所以Android标签可能不需要。 – EJK