Get Date stamp
/*
* DateTimeUtil.java
*
* Copyright (C) 2005-2009 Tommi Laukkanen
* http://www.substanceofcode.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
//package com.substanceofcode.utils;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* <p>This class provides methods for dealing with Dates and Times.</p>
*
* In particular it deals with converting Dates/Times to String representations of those values.
*
* @author Tommi Laukkanen
* @author Barry Redmond
*/
public abstract class DateTimeUtil {
/** Get current Date stamp
* @return The Curretn Date/Time in the format: yyyymmdd_hhmm
*/
public static String getCurrentDateStamp() {
return convertToDateStamp(System.currentTimeMillis());
}
/** Convert given date to string<br>
* OutputFormat: yyyymmdd_hhmm
* @return The Date/Time in the format: yyyymmdd_hhmm
*/
public static String convertToDateStamp(long time){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(time));
return convertToDateStamp(cal);
}
/** Convert given date to string<br>
* OutputFormat: yyyymmdd_hhmm
* @return The Date/Time in the format: yyyymmdd_hhmm
*/
public static String convertToDateStamp(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return convertToDateStamp(cal);
}
/** Convert given date to string<br>
* OutputFormat: yyyymmdd_hhmm
* @return The Date/Time in the format: yyyymmdd_hhmm
*/
public static String convertToDateStamp(Calendar cal) {
String year = String.valueOf(cal.get(Calendar.YEAR));
String month = String.valueOf(cal.get(Calendar.MONTH) + 1);
if (month.length() == 1) {
month = "0" + month;
}
String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
if (day.length() == 1) {
day = "0" + day;
}
String hour = String.valueOf(cal.get(Calendar.HOUR_OF_DAY));
if (hour.length() == 1) {
hour = "0" + hour;
}
String minute = String.valueOf(cal.get(Calendar.MINUTE));
if (minute.length() == 1) {
minute = "0" + minute;
}
String second = String.valueOf(cal.get(Calendar.SECOND));
if (second.length() == 1) {
second = "0" + second;
}
String dateStamp = year + month + day + "_" + hour + minute + second;
return dateStamp;
}
/**
* Get current time stamp in universal format<br>
* Format: yyyy-mm-ddThh:mm:ssZ<br>
* e.g.: 1999-09-09T13:10:40Z
* @return The Date in the format: yyyy-mm-ddThh:mm:ssZ
*/
public static String getUniversalDateStamp(long time){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(time));
return getUniversalDateStamp(cal);
}
/**
* Get date from given date stamp.
* Format: yyyy-mm-ddThh:mm:ssZ
* @param stamp
* @return
*/
public static Date getDateFromUniversalDateStamp(String stamp) {
// Log.debug("Parsing date: " + stamp);
String year = stamp.substring(0,4);
String month = stamp.substring(5,7);
String day = stamp.substring(8,10);
String hour = stamp.substring( 11,13 );
String minutes = stamp.substring( 14,16 );
String seconds = stamp.substring( 17,19 );
//Log.debug(year+"-"+month+"-"+day+"T"+hour+":"+minutes+":"+seconds);
Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UNC+0"));
cal.set(Calendar.YEAR, Integer.parseInt(year) );
cal.set(Calendar.MONTH, Integer.parseInt(month)-1 );
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day) );
cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour) );
cal.set(Calendar.MINUTE, Integer.parseInt(minutes) );
cal.set(Calendar.SECOND, Integer.parseInt(seconds) );
Date date = cal.getTime();
return date;
}
/**
* Get current time stamp in universal format<br>
* Format: yyyy-mm-ddThh:mm:ssZ<br>
* e.g.: 1999-09-09T13:10:40Z
* @return The Date in the format: yyyy-mm-ddThh:mm:ssZ
*/
public static String getUniversalDateStamp(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return getUniversalDateStamp(cal);
}
/**
* Get current time stamp in universal format<br>
* Format: yyyy-mm-ddThh:mm:ssZ<br>
* e.g.: 1999-09-09T13:10:40Z
* @return The Date in the format: yyyy-mm-ddThh:mm:ssZ
*/
public static String getUniversalDateStamp(Calendar cal) {
String year = String.valueOf(cal.get(Calendar.YEAR));
String month = String.valueOf(cal.get(Calendar.MONTH) + 1);
if (month.length() == 1) {
month = "0" + month;
}
String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
if (day.length() == 1) {
day = "0" + day;
}
String hour = String.valueOf(cal.get(Calendar.HOUR_OF_DAY));
if (hour.length() == 1) {
hour = "0" + hour;
}
String minute = String.valueOf(cal.get(Calendar.MINUTE));
if (minute.length() == 1) {
minute = "0" + minute;
}
String second = String.valueOf(cal.get(Calendar.SECOND));
if (second.length() == 1) {
second = "0" + second;
}
String dateStamp = year + "-" + month + "-" + day + "T" + hour + ":"
+ minute + ":" + second + "Z";
return dateStamp;
}
/** Convert date to short time string
* @return The Date in the format: hh:mm:ss
*/
public static String convertToTimeStamp(long time){
return convertToTimeStamp(time, true);
}
/** Convert date to short time string
* @return The Date in the format: hh:mm:ss
*/
public static String convertToTimeStamp(Date date) {
return convertToTimeStamp(date, true);
}
/** Convert date to short time string
* @return The Date in the format: hh:mm:ss
*/
public static String convertToTimeStpam(Calendar cal){
return convertToTimeStamp(cal, true);
}
/** Convert date to short time string
* @param showSeconds Wheather or not to show just the hours and minutes part, or to show the seconds part also.
* @return The Date in the format: hh:mm:ss
*/
public static String convertToTimeStamp(long time, boolean showSeconds) {
return convertToTimeStamp(new Date(time), showSeconds);
}
/** Convert date to short time string
* @param showSeconds Wheather or not to show just the hours and minutes part, or to show the seconds part also.
* @return The Date in the format: hh:mm:ss
*/
public static String convertToTimeStamp(Date date, boolean showSeconds) {
Calendar c = Calendar.getInstance();
c.setTime(date);
return convertToTimeStamp(c, showSeconds);
}
/**
*
* @param time
* @param showSeconds Wheather or not to show just the hours and minutes part, or to show the seconds part also.
* @return The Date in the format: hh:mm:ss */
public static String convertToTimeStamp(Calendar time, boolean showSeconds) {
String hours = Integer.toString(time.get(Calendar.HOUR_OF_DAY));
if (hours.length() == 1) {
hours = '0' + hours;
}
String minutes = Integer.toString(time.get(Calendar.MINUTE));
if (minutes.length() == 1) {
minutes = '0' + minutes;
}
if (showSeconds) {
String seconds = Integer.toString(time.get(Calendar.SECOND));
if (seconds.length() == 1) {
seconds = '0' + seconds;
}
return hours + ":" + minutes + ":" + seconds;
} else {
return hours + ":" + minutes;
}
}
/**
*
* @param startDate Interval start date time
* @param endDate Interval end date time
* @return Time interval in format hh:mm:ss
*/
public static String getTimeInterval(Date startDate, Date endDate) {
long interval = (endDate.getTime() - startDate.getTime());
if(interval == 0) { return "00:00:00"; }
long intervalSeconds = interval / 1000;
long hours = intervalSeconds / 3600;
long minutes = (intervalSeconds % 3600) / 60;
long seconds = intervalSeconds % 60;
String hoursText = String.valueOf( hours );
if(hoursText.length()==1) { hoursText = "0" + hoursText; }
String minutesText = String.valueOf( minutes );
if(minutesText.length()==1) { minutesText = "0" + minutesText; }
String secondsText = String.valueOf( seconds );
if(secondsText.length()==1) { secondsText = "0" + secondsText; }
return hoursText + ":" + minutesText + ":" + secondsText;
}
}
Related examples in the same category