如何将 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;
}