关于java日期

一、时间日期的获取

  • 获取当前系统时间 -- new Date()
  • 获取毫秒数 -- System.currentTimeMillis()
  • 获取当前系统时间和日期并格式化输出:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));

二、对每个时间域单独修改

Date now = new Date(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式
String hehe = dateFormat.format( now ); 
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year = c.get(Calendar.YEAR); 
int month = c.get(Calendar.MONTH); 
int date = c.get(Calendar.DATE); 
int hour = c.get(Calendar.HOUR_OF_DAY); 
int minute = c.get(Calendar.MINUTE); 
int second = c.get(Calendar.SECOND); 
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second); 

三、把String类型的时间转换为Date类型

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date time=null;
try {
   time= sdf.parse(sdf.format(new Date()));
} catch (ParseException e) {
   e.printStackTrace();
}

四、System.currentTimeMillis()计算方式

new Date()所做的事情其实就是调用了System.currentTimeMillis()。如果仅仅是需要或者毫秒数,那么完全可以使用System.currentTimeMillis(),效率上会高一点。
如果需要在同一个方法里面多次使用new Date(),通常性能就是这样一点一点地消耗掉,这里其实可以声明一个引用。

可以看出输出的时间是当前时间的一个小时后。

System.currentTimeMillis()+3600*1000)可以这样解读:System.currentTimeMillis()相当于是毫秒为单位,但是,后头成了1000,就变成了以秒为单位。那么,3600秒=1小时,所以输出为当前时间的1小时后。

我们可以这样控制时间:System.currentTimeMillis()+time*1000),里面传入的time是以秒为单位,当传入60,则输出:当前时间的一分钟后

可以看出输出的时间是当前时间的一分钟后。

五、以年-月-日的方式输出在数据库里的日期

  • 用convert()转化函数:
String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";
System.out.println(rs.getString("convertBookDate"));
  • 利用SimpleDateFormat类:
先要输入两个java包:
import java.util.Date;
import java.text.SimpleDateFormat;
然后:
定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);
sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";
输出:
System.out.println(df.format(rs.getDate("bookDate")));

你可能感兴趣的:(关于java日期)