package com.linkedin.camus.sweeper.utils; import java.util.Properties; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class DateUtils { public DateTimeZone zone; public DateTimeFormatter minuteFormatter; public DateUtils(Properties props) { zone = DateTimeZone.forID(props.getProperty("camus.default.timezone", "America/Los_Angeles")); minuteFormatter = getDateTimeFormatter("YYYY-MM-dd-HH-mm"); } public DateTimeFormatter getDateTimeFormatter(String str) { return DateTimeFormat.forPattern(str).withZone(zone); } public static long getPartition(long timeGranularityMs, long timestamp) { return (timestamp / timeGranularityMs) * timeGranularityMs; } public DateTime getMidnight() { DateTime time = new DateTime(zone); return new DateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), 0, 0, 0, 0, zone); } public DateTime getCurrentHour() { DateTime time = new DateTime(zone); return new DateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), time.getHourOfDay(), 0, 0, 0, zone); } }