org.killbill.clock.DefaultClock Maven / Gradle / Ivy
/*
* Copyright 2010-2013 Ning, Inc.
*
* Ning licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package org.killbill.clock;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDate;
public class DefaultClock implements Clock {
@Override
public DateTime getNow(final DateTimeZone tz) {
final DateTime result = new DateTime(tz);
return truncateMs(result);
}
@Override
public DateTime getUTCNow() {
return getNow(DateTimeZone.UTC);
}
@Override
public LocalDate getUTCToday() {
return getToday(DateTimeZone.UTC);
}
@Override
public LocalDate getToday(final DateTimeZone timeZone) {
return new LocalDate(getUTCNow(), timeZone);
}
public static DateTime toUTCDateTime(final DateTime input) {
if (input == null) {
return null;
}
final DateTime result = input.toDateTime(DateTimeZone.UTC);
return truncateMs(result);
}
public static DateTime truncateMs(final DateTime input) {
return input.minus(input.getMillisOfSecond());
}
}