日期和时间的使用

来源:互联网 发布:数据标准化的通俗理解 编辑:程序博客网 时间:2024/04/30 18:11
Java应用中,日期和时间作为基本的信息类型应用的特别广泛,例如获取当前时间,计算某些操作执行的时间等。日期处理相关的类包括DateCalendar,通过DateCalendar可以获取当前时间,对时间进行一些运算,获取时间中的年、月、日、时、分、秒和星期等信息。在输入和输出的时候经常用到字符串形式的时间,这就需要时间和字符串之间的相互转换,系统提供了DateFormatSimpleDateFormat来完成这个转换。
java.util.Date
用于表示日期和时间,要获取当前时间,可以使用下面的代码:
【例】
// SimpleDateTest.java
 
import java.util.Date;
 
public class SimpleDateTest {
 public static void main(String[] args) {
      // 定义时间对象  
          Date d = new Date();
      // 按照默认格式输出时间
      System.out.println(d.toString());  
 }
}
下面是输出的结果:
Mon Dec 11 05:32:13 GMT 2006
如果想按照特定的格式进行输出,可以按照下面的方法完成,但是现在的版本中建议不要使用。
【例】
// SimpleDate2Test.java
 
import java.util.Date;
 
public class SimpleDate2Test {
 public static void main(String[] args) {
      // 定义时间对象  
          Date d = new Date();
      // 获取年
          int year = d.getYear()+1900;
      // 获取月
          int month = d.getMonth()+1;
      // 获取日
          int date = d.getDate();
      // 获取时
          int hour = d.getHours();
      // 获取分
          int minute = d.getMinutes();
      // 获取秒
          int second = d.getSeconds();
      // 构造输出字符串
          System.out.println(year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second);
 }
}
执行的结果如下:
2006-12-11 5:35:47
如果想根据年月日来确定一个Date对象,可以先创建一个对象,然后使用setter方法来完成,例如:setYear(int)setMonth(int)等,当然这些方法也是建议不使用。如果想对时间进行比较灵活的处理可以使用DateFormatSimpleDateFormat
如果想按照“2006-12-11 5:35:47的格式进行输出,可以使用下面的代码:
【例】
// FormatDateTest.java
 
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
public class FormatDateTest {
 public static void main(String[] args) {
      // 创建时间对象
      Date d = new Date();
      // 创建时间格式化对象
      DateFormat df = new SimpleDateFormat("yyyyMMdd hhmmss");
      // 对时间进行格式化
      String str = df.format(d);
      // 输出格式化后的时间
      System.out.println(str);
 }
}
格式中yyyy表示年份,可以写2位,MM表示月份,可以写1位,dd表示日,可以写1位,hh表示小时,mm表示分钟(注意大小写),ss表示秒。
【注意】DateFormatSimpleDateFormatjava.text包中,使用的时候需要引入。
要想把一个日期字符串转换成一个时间,例如把“2006-2-6”转换成日期,可以使用下面的代码:
【例】
// ParseDateTest.java
 
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
public class ParseDateTest {
 public static void main(String[] args) {
      //定义日期字符串
      String dates = "2006-2-6";
      //定义日期字符串的格式
      DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
      //声明日期对象
      Date d2;
      try {
          //把日期字符串转换成日期
          d2 = df2.parse(dates);
          System.out.println(df2.format(d2));
      }
      catch (Exception ex) {
      }
 }
}
【注意】在转换的时候需要进行异常处理,因为在转换的时候可能会产生异常。
java.util.Calendar
Calendar中提供了很多对时间中年、月、日、时、分、秒以及星期进行操作的方法,如果想对时间进行比较详细的操作可以使用Calendar
该类也是抽象类,使用的时候需要使用getInstance获取实例然后再操作,并且该方法可以获取与特定时区相对应的实例,如果不指定参数,获取的就是默认的时间。下面的代码用于获取当前的时间:
    Calendar c1 = Calendar.getInstance();
要想获取时间中具体的年月日时分秒或者其他信息,通过get方法完成,方法的参数用来指定获取什么信息,例如要获取年月日可以通过下面的代码完成:
    year = c1.get(Calendar.YEAR);
    month = c1.get(Calendar.MONTH)+1;
    date = c1.get(Calendar.DATE);
要对时间中的某一项修改,使用set方法,方法的定义如下:
public void set(int field,int value)
第一个参数指定修改的项,第二个参数表示修改后的值,例如把年修改成2003年:
    c1.set(Calendar.YEAR,2003);
如果要同时修改年月日,可以使用下面的方法:
public void set(int year,int month,int date)
参数分别表示时分秒,下面是同时修改年月日的例子:
    c1.set(2003,5,5);
下面是同时修改年月日时分秒的例子
    //修改年月日时分
    c1.set(2003,5,5,10,30);
    //修改年月日时分秒
    c1.set(2003,5,5,10,30,20);
Date对象和Calendar对象之间可以相互转换,下面是相应的例子:
    //Calendar对象转换成Date对象
    d2 = c1.getTime();
    //把日期类型转换成Calendar类型
    c1.setTime(d2);
原创粉丝点击