blob: 2c9022a67b4894e15a9d2c1fb9faa9347b38732d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.team.internal.ccvs.core;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
/**
* Utilities to handle time stamps in a cvs client.
*/
public class DateUtil {
private static final String ENTRY_TIMESTAMP_FORMAT= "EEE MMM dd HH:mm:ss yyyy";//$NON-NLS-1$
private static final String ENTRY_TIMESTAMP_TIME_ZONE= "GMT";//$NON-NLS-1$
private static final Locale ENTRY_TIMESTAMP_LOCALE= Locale.US;
private static final String MODTIME_TIMESTAMP_FORMAT= "dd MMM yyyy HH:mm:ss zz";//$NON-NLS-1$
private static final Locale MODTIME_TIMESTAMP_LOCALE= Locale.US;
private static final String LOG_TIMESTAMP_FORMAT= "yyyy/MM/dd HH:mm:ss zzz";//$NON-NLS-1$
private static final Locale LOG_TIMESTAMP_LOCALE= Locale.US;
private static final String HISTORY_TIMESTAMP_FORMAT= "yyyy-MM-dd HH:mm zzzz";//$NON-NLS-1$
private static final Locale HISTORY_TIMESTAMP_LOCALE= Locale.US;
/**
* Converts a time stamp as sent from a cvs server for a "log" command into a
* <code>Date</code>.
*/
public static Date convertFromLogTime(String modTime) {
SimpleDateFormat format= new SimpleDateFormat(LOG_TIMESTAMP_FORMAT,
LOG_TIMESTAMP_LOCALE);
try {
return format.parse(modTime);
} catch (ParseException e) {
// fallback is to return null
return null;
}
}
/**
* Converts a modifcation time stamp as send from a cvs server into a
* <code>Date</code>. The format of the modification time stamp is defined
* in the document CVS Client/Server for CVS 1.11 section 5.6 Dates
*/
public static Date convertFromModTime(String modTime) {
SimpleDateFormat format= new SimpleDateFormat(MODTIME_TIMESTAMP_FORMAT,
MODTIME_TIMESTAMP_LOCALE);
try {
return format.parse(modTime);
} catch (ParseException e) {
// fallback is to return null
return null;
}
}
/**
* Converts a history time stamp as sent from a cvs server into a
* <code>Date</code>.
*/
public static Date convertFromHistoryTime(String historyTime) {
SimpleDateFormat format= new SimpleDateFormat(HISTORY_TIMESTAMP_FORMAT,
HISTORY_TIMESTAMP_LOCALE);
try {
return format.parse(historyTime);
} catch (ParseException e) {
// fallback is to return null
return null;
}
}
/**
* Converts a date into an entry time format as specified in the document
* Version Management with CVS for CVS 1.10.6 page 14. Note that the
* time format is always in GMT also not specified in the document.
*/
public static String toEntryFormat(Date date) {
SimpleDateFormat format= new SimpleDateFormat(ENTRY_TIMESTAMP_FORMAT,
ENTRY_TIMESTAMP_LOCALE);
format.setTimeZone(TimeZone.getTimeZone(ENTRY_TIMESTAMP_TIME_ZONE));
return format.format(date);
}
}