在java语言中,用如下方法获取系统时间:
Date date = new Date();
String year=new SimpleDateFormat("yyyy").format(date);
String month=new SimpleDateFormat("MM").format(date);
String day=new SimpleDateFormat("dd").format(date);
这样是分别获取String形式的四位年两位月两位日。比如今天就是“2009”和“08”和“05”
当然也可以这样写:String dateString=new SimpleDateFormat("yyyy-MM-dd").format(new Date());这样写就会获得“2009-08-05”的字符串。注意M大写,其他小写。如果要详细时间,括号中改成"yyyy-MM-dd hh-mm-ss"。HH大写为24小时制,小写为12小时制。
另外值得注意的一点是,在sql server数据库中,例如某字段time为smalldatetime数据格式,可以将它与字符串比较 比如:....where time>'20090604' 和:....where time>'2009-06-04' 都是正确的。都是表示搜索2009年6月4日0点0时0分以后的信息。但是这个以字符串表示的时间必须是真实存在的,不可以出现'2009-02-29'的状况。因为没有29日,在String向smalldatetime数据类型转换的时候发生异常。
但是在类似论坛发帖的功能中,常常会从数据库中获取一周前,一个月前的数据,我在JAVA中写了这样的方法,(貌似)是对的~有用的可以拿去用……
//获得一周前的日期
public String lastWeek(){
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date));
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date))-6;
if(day<1){
month-=1;
if(month==0){
year-=1;month=12;
}
if(month==4||month==6||month==9||month==11){
day=30+day;
}else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
day=31+day;
}else if(month==2){
if(year%400==0||(year %4==0&&year%100!=0))day=29+day;
else day=28+day;
}
}
String y = year+"";String m ="";String d ="";
if(month<10) m = "0"+month;
else m=month+"";
if(day<10) d = "0"+day;
else d = day+"";
return y+m+d;
}
//获得一月前的日期
public String lastMonth(){
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date))-1;
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));
if(month==0){
year-=1;month=12;
}
else if(day>28){
if(month==2){
if(year%400==0||(year %4==0&&year%100!=0)){
day=29;
}else day=28;
}else if((month==4||month==6||month==9||month==11)&&day==31)
{
day=30;
}
}
String y = year+"";String m ="";String d ="";
if(month<10) m = "0"+month;
else m=month+"";
if(day<10) d = "0"+day;
else d = day+"";
return y+m+d;
}