java Date类

     
                                          java语言中的date类介绍及使用
    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化。
所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。


1、使用Date类代表当前系统时间
Date d = new Date();
System.out.println(d);


使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下:
Sun Mar 08 16:35:58 CST 2009
在该格式中,Sun代表Sunday(周日),Mar代表March(三月),08代表8号,CST代表China Standard Time(中国标准时间,也就是北京时间(东八区))。


2、使用Date类代表指定的时间
Date d1 = new Date(2009-1900,3-1,9);
System.out.println(d1);
使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。例如上面的示例代码代表就是2009年3月9号。
实际代表具体的年月日时分秒的日期对象,和这个类似。


3、获得Date对象中的信息
Date d2 = new Date();
//年份
int year = d2.getYear() + 1900;
//月份
int month = d2.getMonth() + 1;
//日期
int date = d2.getDate();
//小时
int hour = d2.getHours();
//分钟
int minute = d2.getMinutes();
//秒
int second = d2.getSeconds();
//星期几
int day = d2.getDay();
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小时:" + hour);
System.out.println("分钟:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);
使用Date类中对应的get方法,可以获得Date类对象中相关的信息。
需要注意的是使用getYear获得是Date对象中年份减去1900以后的值,所以需要显示对应的年份则需要在返回值的基础上加上1900,月份类似。
在Date类中还提供了getDay方法,用于获得Date对象代表的时间是星期几,Date类规定周日是0,周一是1,周二是2,后续的依次类推。


4、Date对象和相对时间之间的互转
Date d3 = new Date(2009-1900,3-1,10);
long time = 1290876532190L;
//将Date类的对象转换为相对时间
long t = d3.getTime();
System.out.println(t);
//将相对时间转换为Date类的对象
Date d4 = new Date(time);
System.out.println(d4);
使用Date对象中的getTime方法,可以将Date类的对象转换为相对时间,使用Date类的构造方法,可以将相对时间转换为Date类的对象。经过转换以后,既方便了时间的计算,也使时间显示比较直观了。
            添加个人观点如下:


Date类之前有6大构造器,其中四个已经标注弃用


第一个构造器是无参构造器,通过调用System的currentTimeMillis()方法来获取当前时间戳,这个时间戳是从1970年到当前时间的毫秒级数据.


第二个构造器,可以将一个毫秒级的数据定义为Date格式的日期。
具体代码如下:


package cn.bjsxt.shuzuneicun;


import java.util.Date;


public class testdate {
public static void main(String[] args){
Date d=new Date(); //new了一个时间对象。
long t =System.currentTimeMillis(); //long类型的t,currentTimeMillis返回当前时间。毫秒为单位,(Date里没有参数)
System.out.println(t); //t就代表当前时间。
Date d2=new Date(1000); //有参数时返回的时、
System.out.println(d2.toGMTString()); //toGMTString斜杠是不建议使用,用也可以。
System.out.println(d2.getTime()); //返回传入的参数值
d2.setTime(2341231); //修改传入的参数
System.out.println(d2.getTime()<d2.getTime());//比较两时间
}

}




时间和字符串的转化:
      代码如下:




package cn.bjsxt.shuzuneicun;


import java.text.DateFormat;//要导入新的类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class testdatefoemat {
public static void main(String[] args) {
DateFormat df=new SimpleDateFormat("yyyy年月dd日,属于本月第w周");//抽象类,有一个子类有用就是时间和字符串的互相转化//这一句时规定了打印格式
// DateFormat df=new SimpleDateFormat("yyyy-y-y");也可以这么写格式
// DateFormat df=new SimpleDateFormat("yy-y-y");也可以这么写格式
// DateFormat df=new SimpleDateFormat("yy-y-y hh:mm:ss");也可以这么写格式
Date d=new Date(12123123);//现在的目的时把这个d转化为字符串
String str=df.format(d);
System.out.print(str);

String str2="1997,9,18";
DateFormat df2=new SimpleDateFormat("yyyy,MM,dd");

try {
Date d2=df2.parse(str2);//将已知时间转化而且要进行异常处理
System.out.println(d2);
}catch(ParseException e){
e.printStackTrace();
}


}
}






package cn.bjsxt.shuzuneicun;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class calendar {
//计算机只认识long类型的数字,因此用Calendar在这二者之间搭起桥梁。
//注意事项:一月是0.二月是1,以此类推,周日是1.周一是2.周六是7.
public static void main(String[] args) {
Calendar c=new GregorianCalendar();
c.set(2001,1,20,12,22,15);//设置时间(这个日期类(d)里已经包含我重置的这个日期
                          //(日期和一个long类行的值对应,set帮你将输入的参数转化为long类型的数))
           //可以使用其提供的常量:c.set(2001,Calendar.FEBRUARY,10,12,13,24);
Date d=c.getTime();//现在可以通过Date找到c的时间(数)
System.out.println(d);
// c.set(Calendar.YEAR,2012);
// c.set(Calendar.MONDAY,12);也可以分开来设置
// System.out.println(c.get(Calendar.YEAR));//打印year
//  c.add(Calendar.YEAR, 30);//加上30年
}
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值