/*******************************************************************************
* Copyright (C) 2015 Connor Lanigan (email: dev@connorlanigan.com)
*
* 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 de.norvos.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Provides various utility methods related to time and date.
*
* @author Connor Lanigan
*/
public class TimeUtils {
/**
* Formats a timestamp as a human readable date. The returned value is
* <strong>not</strong> usable for calculation or storage.
*
* @param timestamp
* the timestamp to format
* @return the date in human readable form
*/
public static String formatDate(final long timestamp) {
final Calendar now = Calendar.getInstance();
final Date date = new Date(timestamp);
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final SimpleDateFormat dateFormat = getFormatForTimestamp(now, cal);
return dateFormat.format(date);
}
private static SimpleDateFormat getFormatForTimestamp(final Calendar now, final Calendar timestamp) {
if (now.get(Calendar.YEAR) != timestamp.get(Calendar.YEAR)) {
return new SimpleDateFormat("yyyy-MM-dd\nHH:mm");
}
if (now.get(Calendar.DAY_OF_YEAR) != timestamp.get(Calendar.DAY_OF_YEAR)) {
return new SimpleDateFormat("MM-yy\nHH:mm");
}
return new SimpleDateFormat("HH:mm");
}
}