2014-04-02 6 views
0

У меня есть следующий код, чтобы получить datetime UTC.Круглый UTC до ближайших 5 минут

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 минут. Так что в этом случае это будет 22.11.2013 03:15. Если это 11/22/2014 03:31, это будет 22.11.2013 03:35.

Любые идеи о том, как достичь этого?

+0

, так что вы хотите только мин. округлять? Я имею в виду, если 15:01 вы хотите до 15:05 –

ответ

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(); 
} 
Смежные вопросы