首页 > 其他 > 详细

日期类

时间:2019-08-12 21:55:03      阅读:95      评论:0      收藏:0      [点我收藏+]

Date类

Date 类是 java.util.Date 类,不是 java.sql.Date

构造方法

//使用当前日期和时间来初始化对象
Date();
//接收一个参数,该参数是从1970年1月1日起的毫秒数
Date(long millisec);

返回毫秒数 getTime

//返回自 1970年1月1日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
long getTime();
//下面两种返回的都是当前时间的毫秒数
new Date().getTime();
System.currentTimeMillis();

设置毫秒数 setTime

//用自 1970年1月1日 00:00:00 GMT 以后 time 毫秒数设置时间和日期
void setTime(long time)

判断时间先后 after

//若当调用此方法的 Date 对象在指定日期之后返回 true,否则返回 false。
boolean after(Date date);

判断时间先后 before

//若当调用此方法的 Date 对象在指定日期之前返回 true,否则返回 false。
boolean before(Date date);

转换字符串 toString

//把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy 其中:dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
String toString()



SimpleDateFormat类

日期转字符串 format

y      年
M      月
d      日
H      24进制的小时
h      12进制的小时
m      分钟
s      秒
S      毫秒
E      星期几
D      一年的第几天
w      一年中第几周
W      一个月中第几周
a      AM还是PM
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
Date d= new Date();
String str = sdf.format(d);
System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
//当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: 2019-06-09 23:06:20 164

SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy/MM/dd");
Date d1= new Date();
String str1 = sdf1.format(d1);
System.out.println("当前时间通过 yyyy/MM/dd 格式化后的输出: "+str1);
//当前时间通过 yyyy/MM/dd 格式化后的输出: 2019/06/09


字符串转日期 parse

SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
String str = "2019/12/5 12:12:12";

try {
    Date d = sdf.parse(str);
    System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
} catch (ParseException e) {
    e.printStackTrace();
}
//字符串 2019/12/5 12:12:12 通过格式  yyyy/MM/dd HH:mm:ss 
//转换为日期对象: Thu Dec 05 12:12:12 CST 2019

字符串模式 (yyyy/MM/dd HH:mm:ss) 需要和字符串格式保持一致



Calendar类

Calendar 类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,使用 getInstance() 方法创建即可。

获取 Calendar 对象

//默认是当前日期
Calendar c = Calendar.getInstance();
//创建一个代表2019年5月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2019, 5 - 1, 12);  //月份从0开始计


filed 字段类型

Calendar.YEAR                    年份
Calendar.MONTH                   月份,0-11
Calendar.DATE                    日期
Calendar.DAY_OF_MONTH            日期,和上面的字段意义完全相同
Calendar.HOUR                    12小时制的小时
Calendar.HOUR_OF_DAY             24小时制的小时
Calendar.MINUTE                  分钟
Calendar.SECOND                  秒
Calendar.DAY_OF_WEEK             星期几


Calendar 与 Date 转换

//用给定的Date设置Calendar的当前时间
void setTime(Date date);

//获取日历当前时间
Date getTime();
//Calendar转Date
Calendar c = Calendar.getInstance();
Date d = c.getTime();

//Date转Calendar
Date d1 = new Date(0);
//日期调成: 1970.1.1 08:00:00
c.setTime(d1); 


设置字段 set

//只设定某个字段,例如日期的值, 例 c1.set(Calendar.DATE,10)
void set(int field,int value);
//设置年月日
void set(int year,int month,int date);
//设置年月日时分秒
void set(int year,int month,int date,int hourOfDay,int minute,int second);

添加或减去时间 add

void add(int field, int amount);
Calendar c1 = Calendar.getInstance();
//当前日期加10天
c1.add(Calendar.DATE, 10);
//当前日期减10天
c1.add(Calendar.DATE, -10);

添加或减去时间 roll

void roll(int field, int amount);

roll 方法和 add 类似,区别在于加上 amount 后超过该字段最大值后,不会向上一个字段进位。

Calendar ca1 = Calendar.getInstance();
ca1.set(2003, 7, 23, 0, 0, 0);  // 2003-8-23
ca1.add(Calendar.MONTH, 6);   //2004-2-23
Calendar ca2 = Calendar.getInstance();
ca2.set(2003, 7, 23, 0, 0, 0);  // 2003-8-23
ca2.add(Calendar.MONTH, 6);   //2003-2-23

获取 filed 字段值 get

void get(int filed);
//获取当前时间月份
Calendar c1 = Calendar.getInstance();
int month = c1.get(Calendar.MONTH) + 1;

获取 filed 最大值 getActualMaximum

//返回当前日期,给定字段的最大值,例如月份返回 11
int getActualMaximum(int field);

获取 filed 最小值getActualMaximun

//返回当前日期,给定字段的最小值, 例如月份返回 0
int getActualMinimum(int field);

日期类

原文:https://www.cnblogs.com/zongmin/p/11342812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!