Java获取系统时间的常用方法
·
Java获取系统时间有以下四种常见方法
方法一:通过Date类来获取当前时间
Date now=new Date();
System.ou.println(now.getTime());
//设置日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(now));
方法二:通过System类的currentTimeMillis方法来获取当前时间
//可直接获取时间
System.out.println(System.currentTimeMillis());
//设置想要的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));
方法三:通过Calendar类来获取当前时间
/**
* 可以对每个时间域单独修改
*/
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);
方法四:通过Date类来获取当前时间
Date date = new Date();
String year = String.format("%tY", date);
String month = String.format("%tm", date);
String day = String.format("%td", date);
System.out.println("现在是:"+year+"年"+month+"月"+day+"号");

》》》》》》》》》》》》》 拓 展 《《《《《《《《《《《《《
1.日期格式字符串如下:

2.在JAVA中有六个与时间有关的类
1、java.util.Date 日期格式为:年月日时分秒
java.util.Date 就是在除了SQL语句的情况下面使用;常用的表示时间的类,我们通常格式化或者得到当前
时间都是用他
它是java.sqlDate,java.sql.Time,java.sql.Timestamp的父类,若在Java中的时间使用标准类库的
java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类
型)表达一个特定的时间点。但是从JDK1.1 开始,就使用Calendar 类实现日期和时间字段之间转换,使用
DateFormat 类来格式化和分析日期字符串。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的
大部分方法已经过期,不建议使用了,它们都被java.util.Calendar类所取代。
2、java.sql.Date 日期格式为:年月日[只存储日期数据不存储时间数据]
屏蔽了java.util.Date类的时间有关的方法(形如:hh:mm:ss),因此,不可以通过这个类访问时间有关的信
息,比如,你通过sqlDate.getHour()方法去访问小时信息,此方法会抛出一个IllegalArgumentException
异常。这是因为java.sql.Date在继承java.util.Date类的时候对父类进行了重写,禁用了时间访问的方法。
之所以这么处理,是为了和数据库的Date数据类型相匹配,数据库的Date数据类行只是保存日期有关的字段。
java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然
就可以直接构建,一般我们在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和
ResultSet的getDate()方法的第2个参数都是它。
Oracle的Date类型,只需要年月日,选择使用java.sql.Date类型
继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());
3、java.sql.Time 日期格式为:时分秒
屏蔽了java.util.Date的日期有关的字段(形如:yyyy-MM-dd),因此,不能通过这个类访问日期有关的信
息,比如:如果你通过sqlTime.getYear()方法去获取年有关的信息,此方法会抛出一个
IllegalArgumentException异常。这是因为java.sql.Time在继承java.util.Date类的时候对父类进行了
重写,禁用了日期访问的方法。之所以这么处理,是为了和数据库的Time数据类型相匹配,数据库的Time数据
类行只是保存时间有关的字段。
4、java.sql.Timestamp 日期格式为:年月日时分秒纳秒(毫微秒)
字段则对java.util.Date这个类进行了扩充,它在java.util.Date类的基础上增加了毫秒的时间访问控制,
因此,你可以通过getNanos()方法去获取时间的毫微秒数(注意此处获取的时间是以毫微秒为单位的,1秒
等于十亿毫微秒),同样的,这也是为了和数据库中的Timestamp数据类型进行匹配。
5、java.text.SimpleDateFormat (DateFormat的直接子类)
SimpleDateFormat 是一个以语言环境相关的方式来格式化和分析日期的具体类。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过DateFormat
中的getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。
6、java.util.Calendar (抽象类)
是java.util.Date类的一个更加深入,更加全面的替代。
java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间
的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表
示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
与其他语言环境敏感类一样,Calendar 提供了一个类方法getInstance,以获得此类型的一个通用的对象。
Calendar的getInstance方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
3.创建 SimpleDateFormat 对象时必须指定转换格式
转换格式区分大小写,yyyy--年份,MM--月份,dd--日期,HH--24 进制的小时,hh--12 进制的小时,mm--分钟,ss--秒。
/**
* 时间转化为字符串
*/
Date date =new Date();
//设置日期格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str=sdf.format(date);
System.out.println("The time is "+str);
/**
* 字符串转化为时间
*/
Date date1=null;
//设置日期格式
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
String str1="2015-1-25";
try {
date1=sdf1.parse(str1);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date1);
更多推荐



所有评论(0)