如何将 UTC 日期与 Android 中的当前 UTC 时间进行比较?
How to to compare UTC dates with current UTC time in Android?
我知道有人问过这个问题,但解决方案要么已经过时,不受 Java 7 支持,要么需要一个外部库(我希望避免,因为我不想要另一个库这是一个简单的用例)。
但基本上我有 2 个日期来自我的数据库,并且日期是 UTC。我想以 UTC 格式获取设备的当前时间,并检查当前时间是否在开始日期和结束日期之间。目前我正在获取从 Db 到 phone 的数据库日期作为 UTC,但当前时间与设备的时区一起出现并且比较是错误的。
他们中的大多数人使用第三方库的原因是因为它们比 Java 提供的更稳定
获取 UTC 当地时间:
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(cal_Two.getTime());
Output: Sat Jan 25 11: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;
}
我知道有人问过这个问题,但解决方案要么已经过时,不受 Java 7 支持,要么需要一个外部库(我希望避免,因为我不想要另一个库这是一个简单的用例)。
但基本上我有 2 个日期来自我的数据库,并且日期是 UTC。我想以 UTC 格式获取设备的当前时间,并检查当前时间是否在开始日期和结束日期之间。目前我正在获取从 Db 到 phone 的数据库日期作为 UTC,但当前时间与设备的时区一起出现并且比较是错误的。
他们中的大多数人使用第三方库的原因是因为它们比 Java 提供的更稳定
获取 UTC 当地时间:
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(cal_Two.getTime());
Output: Sat Jan 25 11: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;
}