package com.conant.order.util;
import java.text.*;
import java.util.*;
import java.sql.Timestamp;
/**
* <p>Title: Online-Order System</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author Martin
* @version 1.0
*/
public abstract class DTime {
/**
* ʱ���ʽyyyyMMddHHmmssSSS
*/
private static final String TIMESTAMP_FORMAT = "yyyyMMddHHmmssSSS";
/**
* ȡ��ָ��ʱ��������ֵ
*/
public static String getActualMaximum(int field) throws Exception {
Calendar calendar = Calendar.getInstance();
int max = calendar.getActualMaximum(field);
return (max < 10 ? "0" + max : String.valueOf(max));
}
/**
* ȡ��ָ���·ݵ����һ��
*/
public static int getLastDayOfMonth(int year, int month) throws Exception {
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, 1);
return cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
}
/**
* ȡ��UID
*/
public static String getUID() {
java.rmi.server.UID uId = new java.rmi.server.UID();
return uId.toString().replace(':', '.');
}
/**
* ȡ��ָ����ʽ��ʱ�䴮
*/
public static String getDateTimeString(String newpt) throws Exception {
StringBuffer dtBuf = new StringBuffer();
SimpleDateFormat sdf = new SimpleDateFormat(newpt);
sdf.setLenient(false);
sdf.format(Calendar.getInstance().getTime(), dtBuf, new FieldPosition(0));
sdf = null;
return dtBuf.toString();
//return getDateTimeString(getDateTimeStamp(), "yyyyMMddHHmmssSSS", newpattern);
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static String getDateTimeString(java.util.Date date, String newpt) throws
Exception {
StringBuffer dtBuf = new StringBuffer();
SimpleDateFormat sdf = new SimpleDateFormat(newpt);
sdf.setLenient(false);
sdf.format(date, dtBuf, new FieldPosition(0));
sdf = null;
return dtBuf.toString();
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static String getDateTimeString(long midate, String newpt) throws
Exception {
StringBuffer dtBuf = new StringBuffer();
SimpleDateFormat sdf = new SimpleDateFormat(newpt);
sdf.setLenient(false);
sdf.format(new java.util.Date(midate), dtBuf, new FieldPosition(0));
sdf = null;
return dtBuf.toString();
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static String getDateTimeString(String dateStr, String newpt) throws
Exception {
return getDateTimeString(dateStr, TIMESTAMP_FORMAT, newpt);
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static java.util.Date getDateFromString(String dateStr) throws
Exception {
return getDateFromString(dateStr, TIMESTAMP_FORMAT);
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static Timestamp getTimestampFromString(String dateStr) throws
Exception {
java.util.Date dt = getDateFromString(dateStr, TIMESTAMP_FORMAT);
return new Timestamp(dt.getTime());
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static java.util.Date getDateFromString(String dateStr, String pt) throws
Exception {
int minLen = (dateStr.length() < pt.length() ? dateStr.length() :
pt.length());
SimpleDateFormat sdf = new SimpleDateFormat(pt.substring(0, minLen));
sdf.setLenient(false);
return sdf.parse(dateStr.substring(0, minLen));
}
/**
* ת��ָ����ʽ��ʱ�䴮
*/
public static String getDateTimeString(String dateStr, String oldpt,
String newpt) throws Exception {
if (dateStr == null || dateStr.trim().length() == 0) {
return dateStr;
}
StringBuffer dtBuf = new StringBuffer();
java.util.Date date = getDateFromString(dateStr, oldpt);
SimpleDateFormat sdf = new SimpleDateFormat(newpt);
sdf.setLenient(false);
sdf.format(date, dtBuf, new FieldPosition(0));
sdf = null;
return dtBuf.toString();
}
/**
* ȡ�õ�ǰ��ʱ�䴮
*/
public static synchronized String getDateTimeStamp() throws Exception {
//deprecation method
Calendar cal = Calendar.getInstance();
int year = cal.get(java.util.Calendar.YEAR);
int month = cal.get(java.util.Calendar.MONTH) + 1;
int date = cal.get(java.util.Calendar.DATE);
int hour = cal.get(java.util.Calendar.HOUR);
if (cal.get(java.util.Calendar.AM_PM) == java.util.Calendar.PM) {
hour += 12;
}
int minute = cal.get(java.util.Calendar.MINUTE);
int second = cal.get(java.util.Calendar.SECOND);
int msecond = cal.get(java.util.Calendar.MILLISECOND);
return year + (month >= 10 ? "" : "0") + month + (date >= 10 ? "" : "0") +
date + (hour >= 10 ? "" : "0")
+ hour + (minute >= 10 ? "" : "0") + minute +
(second >= 10 ? "" : "0") + second
+ (msecond >= 10 ? (msecond >= 100 ? "" : "0") : "00") +
msecond;
}
/**
* ��ȡ�������ڶ�����������
*/
/*
public static long getDatesGap(java.util.Date dstart,java.util.Date dend) throws Exception{
java.util.Calendar calstart = java.util.Calendar.getInstance();
java.util.Calendar calend = java.util.Calendar.getInstance();
java.util.Calendar calmid = java.util.Calendar.getInstance();
int ystart = dstart.getYear() + 1900;
int yend = dend.getYear() + 1900;
calstart.set(ystart, dstart.getMonth(), dstart.getDate());
calend.set(yend, dend.getMonth(), dend.getDate());
long days = 0;
for(int i = ystart; i < yend; i++){
calmid.set(i, 11, 31);
days += calmid.get(Calendar.DAY_OF_YEAR);
}
return (days + calend.get(Calendar.DAY_OF_YEAR) - calstart.get(Calendar.DAY_OF_YEAR));
}
*/
/**
* ��ȡ���������ַ�������������
*/
public static long getDateGapFromString(String dstr) throws Exception {
java.util.Date dstart = getDateFromString(dstr, TIMESTAMP_FORMAT);
String now = getDateTimeStamp();
java.util.Date dend = getDateFromString(now, TIMESTAMP_FORMAT);
return getMillSecGap(dstart, dend);
}
/**
* ��ȡ�������ڶ������������
*/
public static long getMillSecGap(java.util.Date dstart, java.util.Date dend) {
return (dend.getTime() - dstart.getTime());
}
/**
* ȡ�õ�ǰʱ��ĺ�����
*/
public static int getMillSec() {
return Calendar.getInstance().get(java.util.Calendar.MILLISECOND);
}
/**
* ȡ��ָ�����ڵ���һ��
*
* @param date
* ָ�����ڡ�
* @return ָ�����ڵ���һ��
*/
public static java.util.Date getPreDay(java.util.Date date) {
/**
* ��ϸ��ƣ� 1.ָ�����ڼ�1��
*/
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.add(Calendar.DATE, -1);
return gc.getTime();
}
/**
* ȡ��ָ�����ڵ���һ��
*
* @param date
* ָ�����ڡ�
* @return ָ�����ڵ���һ��
*/
public static java.util.Date getNextWeek(java.util.Date date) {
/**
* ��ϸ��ƣ� 1.ָ�����ڼ�1��
*/
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.add(Calendar.DATE, 7);
return gc.getTime();
}
}