/**
* Convert string to date object
* @param strD the string date format:yyyy-MM-dd HH:mm:ss
* @return
*/
public static Date strToDate(String strD)
{
try
{
String strFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
return sdf.parse(strD);
}catch(java.text.ParseException e)
{
throw new mfutil.MFUtilException("Can not convert string to date object:"+ strD);
}
}
我写一个时间类
package LR.cclient;
import java.util.*;
import java.util.GregorianCalendar;
public class JDate
{
//字符串转换标志
public final static int Enum_DateTime=0x0001; //日期格式:YYYY-MM-DD HH:MM:SS
public final static int Enum_Time =0x0002; //日期格式:HH:MM:SS
public final static int Enum_Date =0x0003; //日期格式:YYYY-MM-DD
public final static String[] WEEK={"星期一","星期二","星期三","星期四","星期五","星期六","星期七",};
public final static String[] QUARTER={"第一季度","第二季度","第三季度","第四季度"};
private int m_Year; //年
private int m_Month; //月
private int m_Day; //日
private int m_Hour; //时
private int m_Minutes; //分
private int m_Seconds; //秒
public JDate()
{
this.setDate(0,0,0,0,0,0);
}
//取当前计算机时间
public static JDate GetCurrentTime()
{
JDate currDate=new JDate();
Calendar calendar = new GregorianCalendar();
Date trialTime = new Date();
calendar.setTime(trialTime);
currDate.setYear(calendar.get(Calendar.YEAR));
currDate.setMonth(calendar.get(Calendar.MONTH)+1);
currDate.setDay(calendar.get(Calendar.DATE));
currDate.setHour(calendar.get(Calendar.HOUR_OF_DAY));
currDate.setMinutes(calendar.get(Calendar.MINUTE));
currDate.setSeconds(calendar.get(Calendar.SECOND));
return currDate;
}
public int getYear()
{
return m_Year;
}
public int getMonth()
{
return m_Month;
}
public int getDay()
{
return m_Day;
}
public int getHour()
{
return m_Hour;
}
public int getMinutes()
{
return m_Minutes;
}
public int getSeconds()
{
return this.m_Seconds;
}
public void setYear(int y)
{
m_Year=y;
}
public boolean setMonth(int m)
{
this.m_Month=m;
return m>=1&&m<=12;
}
public boolean setDay(int d)
{
this.m_Day=d;
return d<=this.calcCurrentMonthDay();
}
public boolean setHour(int h)
{
this.m_Hour=h;
return h>=0&&h<=24;
}
public boolean setMinutes(int m)
{
this.m_Minutes=m;
return m>=0&&m<=59;
}
public boolean setSeconds(int s)
{
this.m_Seconds=s;
return s>=0&&s<=59;
}
public void setDate(JDate date)
{
m_Year=date.getYear();
m_Month=date.getMonth();
m_Day = date.getDay();
m_Hour = date.getHour();
m_Minutes = date.getMinutes();
m_Seconds = date.getSeconds();
}
public void setDate(int Year,int Month,int Day,int Hour,int Minutes,int Seconds)
{
m_Year=Year;
m_Month = Month;
m_Day = Day;
m_Hour = Hour;
m_Minutes = Minutes;
m_Seconds = Seconds;
}
//计算当月的天数
public int calcCurrentMonthDay()
{
if(m_Month==2)
{
return (((m_Year%4==0)&&(m_Year%100!=0))||(m_Year%400==0))?29:28;
}
else if(m_Month<=7&&m_Month!=2)
{
return m_Month%2==0?30:31;
}
else
{
return m_Month%2==0?31:30;
}
}
//计算到当年的零点的秒数
public int CalcSecondsInDate()
{
int sum=0;
for(int i=1;i<getMonth();i++)
{
if(i==2)
sum+=(((getYear()%4==0)&&(getYear()%100!=0))||(getYear()%400==0))?29:28;
else if((i<=7)&&(i!=2))
sum+=(i%2==0)?30:31;
else if(i>=8&&i!=2)
sum+=(i%2==0)?31:30;
}
sum=sum+getDay()-1;
sum=sum*24*3600;
sum=sum+3600*getHour()+60*getMinutes()+getSeconds();
return sum;
}