/* * Copyright (C) 2008-2020, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.juick.util; /** * Created by aalexeev on 12/7/16. */ public class DateFormattersHolder { private DateFormattersHolder() { throw new IllegalStateException(); } private static volatile DateFormatter messageFormatter; public static DateFormatter getMessageFormatterInstance() { DateFormatter localInstance = messageFormatter; if (localInstance == null) { synchronized (DateFormatter.class) { localInstance = messageFormatter; if (localInstance == null) messageFormatter = localInstance = new DateFormatter("yyyy-MM-dd HH:mm:ss"); } } return localInstance; } private static volatile DateFormatter rssFormatter; public static DateFormatter getRssFormatterInstance() { DateFormatter localInstance = rssFormatter; if (localInstance == null) { synchronized (DateFormatter.class) { localInstance = rssFormatter; if (localInstance == null) rssFormatter = localInstance = new DateFormatter("EEE, d MMM yyyy HH:mm:ss"); } } return localInstance; } private static volatile DateFormatter httpDateFormatter; public static DateFormatter getHttpDateFormatter() { DateFormatter localInstance = httpDateFormatter; if (localInstance == null) { synchronized (DateFormatter.class) { localInstance = httpDateFormatter; if (localInstance == null) { httpDateFormatter = localInstance = new DateFormatter("EEE, dd MMM yyyy HH:mm:ss O"); } } } return localInstance; } }