将UTC日期回合最近的5分钟

时间:2014-04-02 04:38:58

标签: java android date

我有以下代码来获取日期时间UTC。

public static Date GetUTCdatetimeAsDate()
{
    return StringDateToDate(GetUTCdatetimeAsString());
}

public static String GetUTCdatetimeAsString()
{
    final SimpleDateFormat sdf = new SimpleDateFormat(DATEFORMAT);
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    final String utcTime = sdf.format(new Date());

    return utcTime;
}

public static Date StringDateToDate(String StrDate)
{
    Date dateToReturn = null;
    SimpleDateFormat dateFormat = new SimpleDateFormat(DATEFORMAT);

    try
    {
        dateToReturn = (Date)dateFormat.parse(StrDate);
    }
    catch (ParseException e)
    {
        e.printStackTrace();
    }

    return dateToReturn;
}

现在我想使用GETUTCdatetimeAsDate,如果我得到例如11/22/2014 03:12那么会议记录将向上舍入到最接近的5分钟。所以在这种情况下将是2014年11月22日03:15。如果是2014年11月22日03:31那将是11/22/2014 03:35。

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:3)

public static Date StringDateToDate(String StrDate) {
    Date dateToReturn = null;
    SimpleDateFormat dateFormat = new SimpleDateFormat(DATEFORMAT);
    try {
        dateToReturn = (Date) dateFormat.parse(StrDate);
    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }

    Calendar c = Calendar.getInstance();
    c.setTime(dateToReturn);
    int minute = c.get(Calendar.MINUTE);
    minute = minute % 5;
    if (minute != 0) {
        int minuteToAdd = 5 - minute;
        c.add(Calendar.MINUTE, minuteToAdd);
    }

    return c.getTime();
}