java时间对象_Java中的有关日期的对象

Date

Java中Date有两种,一种是java.util.Date另一种是java.sql.Date,sql这个Date是util的Date的子类,sql一般用在Dao持久层

我们讨论util下的Date

构造函数:

常用的有Date() 和 Date(long date)

getTime():获取时间的毫秒值,从1970年开始计算

before()、after() 和 equals():比较日期

SimpleDateFormat

日期格式化

构造函数:SimpleDateFormat(pattern: "yyyy-MM-dd")

常用的方法(格式化的结果都是按照构造方法中设置的格式化模式):

format(Date date):将Date日期转换为字符串

parse(String date):将字符串格式化为Date日期,字符串的格式要和pattern对应,否则抛出ParseException异常

Calendar

日历类,Calendar为抽象类,由于Calendar的敏感性,需要通过静态方法创建:Calendar c = Calendar.getInstance()

常用方法

get(int field)

get方法用来获取指定字段的值

Calendar.YEAR(获取年)、Calendar.MONTH(获取月) ...

Calendar的月份为0-11对应1-12月、星期是从周天开始计算的

set(int field, int value)

set方法用来设置指定字段的值

value值要是转换过后的值,比如现在是10月,你要设置10月的话就得先减去1得到就,将value设置为9就是设置月份为10月

add(int field, int amount)

add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移量。

getTime()

Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象

Java8中用于计算时差的类

1. Period(以年月日来表示日期差)

利用Period的静态方法between,将两个LocalDate进行计算

在通过调用类的方法getYears()、getMonths())、getDays()来获取具体的差值

2. Duration(以秒与毫秒来表示时间差)

Date之间的各种转换

1、Date格式化然后转String

Date date = new Date();

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");

String format = simpleDateFormat.format(date);

System.out.println(format);

输出:

2020-10-16

2、Date转Datetime

Date date = new Date();

long time = date.getTime();

Timestamp timestamp = new Timestamp(time);

System.out.println(timestamp);

输出:

2020-10-16 12:28:03.169

3、String转换为Date

String d = "2020-10-16";

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");

Date date = null;

try {

date = simpleDateFormat.parse(d);

} catch (ParseException e) {

e.printStackTrace();

}

System.out.println(date);

输出:

Fri Oct 16 00:00:00 CST 2020

4、String转换为java.sql.Date

String d = "2020-10-16";

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

java.sql.Date date = null;

try {

Date parse = simpleDateFormat.parse(d);

date = new java.sql.Date(parse.getTime());

} catch (ParseException e) {

e.printStackTrace();

}

System.out.println(date);

输出:

2020-10-16

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值