All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.greencheek.related.indexing.util.JodaISO8601UTCCurrentDateAndTimeFormatter Maven / Gradle / Ivy

/*
 *
 *  * Licensed to Relateit under one or more contributor
 *  * license agreements. See the NOTICE file distributed with
 *  * this work for additional information regarding copyright
 *  * ownership. Relateit 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.greencheek.related.indexing.util;

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.format.*;


import java.io.IOException;


/**
 * Formats a given range of string dates to a UTC time:
 *
 * 
    *
  • "2008-02-07T09:30:00.000+11:00" converts to "2008-02-06T22:30:00.000Z"
  • *
  • "2008-02-07T09:30:00.000+09:00" converts to "2008-02-07T00:30:00.000Z"
  • *
* * Other examples include: *
 * formatter.formatToUTC("20080207T093000+0000")          converts to "2008-02-07T09:30:00.000Z"
 * formatter.formatToUTC("2008-02-07T09:30:00")           converts to "2008-02-07T09:30:00.000Z"
 * formatter.formatToUTC("2008-02-07T09:30:00+00:00")     converts to "2008-02-07T09:30:00.000Z"
 * formatter.formatToUTC("2008-02-07T09:30:00.000+00:00") converts to "2008-02-07T09:30:00.000Z"
 * formatter.formatToUTC("2008-02-07T09:30:00+00:00")     converts to "2008-02-07T09:30:00.000Z"
 * formatter.formatToUTC("2008-02-07")                    converts to "2008-02-07T00:00:00.000Z"
 * 
*/ public class JodaISO8601UTCCurrentDateAndTimeFormatter implements ISO8601UTCCurrentDateAndTimeFormatter { private final DateTimeFormatter formatter = ISODateTimeFormat.dateTime(); private final DateTimeFormatter formatterUTCPrinter = ISODateTimeFormat.dateTime().withZoneUTC(); private final DateTimeParser[] parsers = { ISODateTimeFormat.dateTimeParser().getParser(), ISODateTimeFormat.basicDateTime().getParser(), ISODateTimeFormat.basicDateTimeNoMillis().getParser(), ISODateTimeFormat.basicDate().getParser() }; private final DateTimeFormatter formatterUTC = new DateTimeFormatterBuilder().append( null, parsers ).toFormatter().withZoneUTC(); @Override public String getCurrentDay() { DateTime dt = new DateTime(); DateTime utc =dt.withZone(DateTimeZone.UTC); StringBuilderWriter b = new StringBuilderWriter(24); try { formatter.printTo(b,utc); } catch (IOException e) { // this does not get thrown by the StringBuilder Appendable interface. } return b.toString(); } @Override public String formatToUTC(String day) { StringBuilderWriter b = new StringBuilderWriter(24); try { formatterUTCPrinter.printTo(b,formatterUTC.parseDateTime(day)); } catch (IOException e) { // this does not get thrown by the StringBuilder Appendable interface. } return b.toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy