日期处理

日期处理类

Date类

方法类型描述
public Date()构造实例化Date类对象
public Date(long date)构造将数字变为Date 类对象,long 为日期时间数据
public long getTime()普通将当前的日期时间变为long类型

取出当前时间:

Date date = new Date();
System.out.println(date);

Date与long 间的转换:

long currentTimeMillis = System.currentTimeMillis();
Date currentDate = new Date(currentTimeMillis);
System.out.println(currentDate);
System.out.println(currentDate.getTime());

日期格式化:SimpleDateFormat

方法类型描述
public SimpleDateFormat(String pattern)构造传入日期时间标记实例化对象
public final String format(Date date)普通将日期格式化为字符串数据
public Date parse(String source) throws ParseException普通将字符串格式化为日期数据

想要正常的完成格式化的操作,还需要准备出一些常用的日期时间标记:年(yyyy),月(MM),日(dd),时(HH),分(mm),秒(ss),毫秒(SSS).

将日期格式化显示(date 转化为 String 类型):

Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String format = simpleDateFormat.format(date);
System.out.println(format);

执行结果:

2019-01-17 13:36:58.070

将字符串转化为日期:

try {
    String riqi = "1997-08-22 12:12:12.666";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date parse = simpleDateFormat.parse(riqi);
    System.out.println(parse);
} catch (ParseException e) {
    e.printStackTrace();
}

执行结果:

Fri Aug 22 12:12:12 CST 1997

注意:SimpleDateFormat可以自动处理错误日期时间数。

例如:

try {
    String riqi = "1997-08-58 37:12:12.666";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date parse = simpleDateFormat.parse(riqi);
    System.out.println(parse);
} catch (ParseException e) {
    e.printStackTrace();
}

执行结果:

Sun Sep 28 13:12:12 CST 1997		

Calendar类

Calendar类可以将取得时间精确到毫秒,并且由于其可以分别取得日期时间数字,这样可以直接进行各种日期时间的计算操作。

Calendar类中定义的常量与方法:

方法类型描述
public static final int YEAR常量取得年
public static final int MONTH常量取得月
public static final int DAY_OF_MONTH常量取得日
public static final int HOUR_OF_DAY常量取得小时(24小时制)
public static final int MINUTE常量取得分
public static final int SECOND常量取得秒
public static final int MILLISECOND常量取得毫秒
public static final Calendar getInstance()普通根据默认的时区实例化对象
public boolean after(Object when)普通判断一个日期是否在指定日期之后
public boolean before(Object when)普通判断一个日期是否在指定日期之前
public int get(int field)普通返回给定日历字段的值

取得当前日期时间:

Calendar instance = Calendar.getInstance();
        int year = instance.get(Calendar.YEAR);
        int month = instance.get(Calendar.MONTH)+1;//取得当前月份,从 0 开始
        int day = instance.get(Calendar.DAY_OF_MONTH);
        int hour = instance.get(Calendar.HOUR_OF_DAY);
        int minute = instance.get(Calendar.MINUTE);
        int second = instance.get(Calendar.SECOND);
        String currentDate = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
        System.out.println(currentDate);

执行结果:

2019-1-20 20:26:9

补充:日期变化后,可以用 SimpleDateFormat格式化时间。

例如:

//取30天后的时间
day += 30;
String afterDate = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
System.out.println(afterDate);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date parse = simpleDateFormat.parse(afterDate);
String format = simpleDateFormat.format(parse);
System.out.println(format);

执行结果:

2019-1-50 20:37:46
2019-02-19 08:37:46
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值