java.util.date问题
得当前时间
很多方法SUN在未来的 JDK中要弃用 现在发出警告 我主要的不相看到这些警告信息
我试了calendar不肥实现 不知道SUN把Date的 功能整合在那里了?
问题点数:40、回复次数:6Top
1 楼zunshanke2004()回复于 2006-09-14 17:06:49 得分 20
得当前时间直接用Date date=new java.util.Date();不就行了吗?这是jdk1.4的!
再给你附上别人写的操作时间的类!
public class DateUtils {
private final static String FORMAT_DATE = "yyyy-MM-dd";
private final static String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";
private DateUtils() {
}
/**
*
* @param source Date
* @return String 日期时间字符串
*/
public static String datetimeToString(java.util.Date source) {
if(source==null){
return null;
}
String tmpString = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_DATETIME);
try {
tmpString = simpleDateFormat.format(source);
}
catch (Exception e) {
}
return tmpString;
}
/**
*
* @param source Date
* @return String 日期字符串
*/
public static String dateToString(Date source) {
if(source==null){
return null;
}
String tmpString = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_DATE);
try {
tmpString = simpleDateFormat.format(source);
}
catch (Exception e) {
}
return tmpString;
}
/**
* 计算两个时间之间的月份长度
*
* 如 2004-1-23 到2004-4-05,月份差为4
*
* @param start
* @param end
* @return
*/
public static int monthNumber(java.util.Date start,java.util.Date end){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(start);
int startMonth=calendar.get(Calendar.MONTH);
int startYear=calendar.get(Calendar.YEAR);
calendar.setTime(end);
int endMonth=calendar.get(Calendar.MONTH);
int endYear=calendar.get(Calendar.YEAR);
int number=1;
if(endYear>startYear){
number=(endMonth-startMonth+1) + (endYear-startYear) * 12;
}else if(endYear<startYear){
number=-((startMonth-endMonth+1) + (startYear-endYear) * 12);
}else{
if(endMonth>=startMonth){
number=endMonth-startMonth+1;
}else{
number=-(startMonth-endMonth+1);
}
}
return number;
}
//将日期的月份加减
public static java.sql.Date addMonth(java.util.Date date,int amount){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
calendar.add(Calendar.MONTH,amount);
return new java.sql.Date(calendar.getTime().getTime());
}
}
Top
2 楼zunshanke2004()回复于 2006-09-14 17:07:03 得分 10
//将日期的天数加减
public static java.sql.Date addDay(java.util.Date date,int amount){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH,amount);
return new java.sql.Date(calendar.getTime().getTime());
}
//设置特定的月
public static java.sql.Date setMonth(java.util.Date date,int month){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.MONTH,month-1);
return new java.sql.Date(calendar.getTime().getTime());
}
//设置特定的天(月中)
public static java.sql.Date setDay(java.util.Date date,int day){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,day);
return new java.sql.Date(calendar.getTime().getTime());
}
//是否是同一天
public static boolean isSameDay(java.util.Date dateA,java.util.Date dateB){
SimpleDateFormat dateFormat = new SimpleDateFormat(FORMAT_DATETIME);
return dateFormat.format(dateA).equals(dateFormat.format(dateB));
}
//得到日期的年份
public static int getYear(java.util.Date date){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
//得到日期的月份
public static int getMonth(java.util.Date date){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
return calendar.get(Calendar.MONTH)+1;
}
//得到日期的天(月中)
public static int getDay(java.util.Date date){
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH);
}
//得到年,月,日的数组
public static int[] getYMD(java.util.Date date){
int[] ymd=new int[3];
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
ymd[0]=calendar.get(Calendar.YEAR);
ymd[1]=calendar.get(Calendar.MONTH)+1;
ymd[2]=calendar.get(Calendar.DAY_OF_MONTH);
return ymd;
}
//2004年12月21日 星期二 11:12:34
public static String[] getFullChineseDate(java.util.Date date){
String[] result=new String[7];
String []back= new String [3];
GregorianCalendar calendar=new GregorianCalendar();
calendar.setTime(date);
result[0]=calendar.get(Calendar.YEAR)+"";
result[1]=(calendar.get(Calendar.MONTH)+1)+"";
result[2]=calendar.get(Calendar.DAY_OF_MONTH)+"";
result[3]=getChineseWeek(calendar.get(Calendar.DAY_OF_WEEK)-1);
result[4]=calendar.get(Calendar.HOUR_OF_DAY)+"";
if(calendar.get(Calendar.MINUTE)>0&&calendar.get(Calendar.MINUTE)<9){
result[5]="0"+calendar.get(Calendar.MINUTE)+"";
}
else{
result[5]=calendar.get(Calendar.MINUTE)+"";
}
if(calendar.get(Calendar.SECOND)>=0&&calendar.get(Calendar.SECOND)<=9){
result[6]="0"+calendar.get(Calendar.SECOND)+"";
}
else{
result[6]=calendar.get(Calendar.SECOND)+"";
}
//back[0]=result[0]+"年" + result[1] + "月" + result[2]+"日" ;
back[0]=result[0]+"-" + result[1] + "-" + result[2] ;
back[1] =result[3];
back[2] = result[4] + ":" + result[5] + ":" + result[6];
return back ;
}
public static String getChineseWeek(int number){
if(number<0 || number>6){
return null;
}
return chineseWeekNames[number];
}
private final static String[] chineseWeekNames={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
public static int getMaxDay(int year,int month) {
Calendar calendar=new GregorianCalendar();
calendar.set(year,month-1,1);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
public static String getYear(String yearString){
boolean b= Pattern.matches("[0-9]{1,4}",yearString);
String year="0";
if(b) year=yearString;
return year;
}
/**
* 验证日期*/
public static String getDate(String dateString){
int t[]=new int[3];
String date="";
boolean b = Pattern.matches("[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2}", dateString);
if(b)
{
String d[]=dateString.split("-");
if(d.length!=3) date="";
for(int i=0;i<3;i++){
t[i]=Integer.parseInt(d[i]);
}
if(t[0]<=0||t[0]>9999)date="";
if(t[1]<1||t[1]>12)date="";
switch(t[1]){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(t[2]<1||t[2]>31)date="";
else date=String.valueOf(t[0])+"-"+String.valueOf(t[1])+"-"+String.valueOf(t[2]);
break;
case 4:
case 6:
case 9:
case 11:
if(t[2]<1||t[2]>30)date="";
else date=String.valueOf(t[0])+"-"+String.valueOf(t[1])+"-"+String.valueOf(t[2]);
break;
case 2:
if(t[1]%4==0&&(t[1]%100!=0||t[1]%400==0)){
if(t[2]<1||t[2]>29)date="";
else date=String.valueOf(t[0])+"-"+String.valueOf(t[1])+"-"+String.valueOf(t[2]);
}
else{
if(t[2]<1||t[2]>28) date="";
else date=String.valueOf(t[0])+"-"+String.valueOf(t[1])+"-"+String.valueOf(t[2]);
}
break;
}
}
return date;
}
public static void main(String[] args) {
System.out.println("" + DateUtils.getFullChineseDate(new java.util.Date()));
}
Top
3 楼polarman(北极人http://blog.csdn.net/polarman)回复于 2006-09-14 17:07:26 得分 10
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);Top
4 楼kyyzy(残空碎月)回复于 2006-09-14 17:09:31 得分 0
就是DATE类 编译的时候要发出警告 未来的DATE类的方法将删除
JDK1.6就没这些方法了Top
5 楼kyyzy(残空碎月)回复于 2006-09-14 17:15:04 得分 0
有没得DATE 的接口之类的。。。Top
6 楼yangweihu()回复于 2006-09-16 12:54:23 得分 0
这是DATE接口的问题Top




