/* * Copyright 2013 Produban * * Licensed 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 com.produban.openbus.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Formatting useful for date * */ public class FormatUtil { private static Logger LOG = LoggerFactory.getLogger(FormatUtil.class); public static String DATE_FORMAT_LOG = "[dd/MMM/yyyy:HH:mm:ss+0200]"; public static String DATE_FORMAT_SECOND = "yyyyMMddHHmmss"; public static String DATE_FORMAT_MINUTE = "yyyyMMddHHmm"; public static String DATE_FORMAT_HOUR = "yyyyMMddHH"; public static String DATE_FORMAT_DAY = "yyyyMMdd"; public static String DATE_FORMAT_MONTH = "yyyyMM"; public static String DATE_FORMAT_WEBSERVER = "EEE MMM dd HH:mm:ss zzzz yyyy"; public static String DATE_FORMAT_YEARWEEK = "yyyyw"; public static String getDateFormat(String dateLogs, String oldFormatterStr, String newFormatterStr, Locale locale) { DateFormat oldFormatter = new SimpleDateFormat(oldFormatterStr, locale); DateFormat newFormatter = new SimpleDateFormat(newFormatterStr, locale); Date oldDate = null; try { oldDate = (Date)oldFormatter.parse(dateLogs); } catch (ParseException pe) { LOG.error("Error in parse. OldFormatter: " + oldFormatterStr + " newFormatter " + newFormatterStr + " " + pe); } return newFormatter.format(oldDate); } public static String getDateFormat(String dateLogs, String oldFormatterStr, String newFormatterStr) { return getDateFormat(dateLogs, oldFormatterStr, newFormatterStr, Locale.ENGLISH); } public static long getDateInFormat10Second(String dateLogs, Locale locale) { DateFormat oldFormatter = new SimpleDateFormat(DATE_FORMAT_WEBSERVER, locale); Date oldDate = null; try { oldDate = (Date)oldFormatter.parse(dateLogs); } catch (ParseException pe) { LOG.error("Error in parse. OldFormatter: " + oldFormatter + ": " + pe); } return (oldDate.getTime() - (oldDate.getTime()%10000))/1000; } public static long getDateInFormat10Second(String dateLogs) { return getDateInFormat10Second(dateLogs, Locale.ENGLISH); } public static String getDateInFormatSecond(String dateLogs) { return getDateFormat(dateLogs, DATE_FORMAT_LOG, DATE_FORMAT_SECOND); } public static String getDateInFormatMinute(String dateLogs) { return getDateFormat(dateLogs, DATE_FORMAT_LOG, DATE_FORMAT_MINUTE); } public static String getDateInFormatHour(String dateLogs) { return getDateFormat(dateLogs, DATE_FORMAT_LOG, DATE_FORMAT_HOUR); } public static String getDateInFormatDay(String dateLogs) { return getDateFormat(dateLogs, DATE_FORMAT_LOG, DATE_FORMAT_DAY); } public static long getDateInFormatTimeStamp(String dateLogs) { return getDateInFormatTimeStamp(dateLogs, Locale.ENGLISH); } public static long getDateInFormatTimeStamp(String dateLogs, Locale locale) { DateFormat formatter = new SimpleDateFormat(DATE_FORMAT_WEBSERVER, locale); Date date = null; long unixtime; try { date = (Date)formatter.parse(dateLogs); } catch (ParseException pe) { LOG.error("Error in parse: " + formatter + ": " + pe); } unixtime = date.getTime() / 1000L; return unixtime; } public static long getDateInFormatSecond(String dateLogs, int seconds) { return getDateInFormatSecond(dateLogs, seconds, Locale.ENGLISH); } /** * Transform date in format by seconds * * @param dateLogs date * @param seconds seconds * @param locale * @return */ public static long getDateInFormatSecond(String dateLogs, int seconds, Locale locale) { DateFormat oldFormatter = new SimpleDateFormat(DATE_FORMAT_WEBSERVER, locale); Date oldDate = null; try { oldDate = (Date)oldFormatter.parse(dateLogs); } catch (ParseException pe) { LOG.error("Error in parse. OldFormatter: " + oldFormatter + ": " + pe); } return (oldDate.getTime() - (oldDate.getTime()%(1000*seconds)))/1000; } /*** * * @param request * @return */ public static String getRequestFormat(String request) { request = request.replaceAll("GET_/", ""); return request.replaceAll("\"", ""); } }