时间比较的几种方法

足球365官网是哪个 2026-01-02 22:04:58 admin 5057 254
时间比较的几种方法

经常要比较时间,但是总是忘记需要搜索,希望记录下来,加深印象

1.使用时间戳比较时间 使用date.getTime() 获取时间戳

注:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class DateCompareTest {

public static void main(String[] args) throws ParseException {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String stringDate = "2020-03-11 12:12:11";

Date date = (Date) format.parse(stringDate);

Date time = new Date();

long timeStamp1 = date.getTime();

long timeStamp2 = date.getTime();

System.out.println(timeStamp1); //时间戳:1583899931000

System.out.println(timeStamp1 > timeStamp2); //输出false

}

}

2. 使用Date实例的compareTo()方法。这个是比较时间,不是比较日期

使用:date1.compareTo(date2) 。

返回值:如果date1小于date2, 返回-1,;如果date1 等于 date2,返回0;如果date1 大于 date2,返回1

public class DateCompareTest {

public static void main(String[] args) throws ParseException {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String strNow = format.format(new Date());

Date now = format.parse(strNow);

System.out.println(now);

String stringDate = "2020-03-11"; //Date时间,格式:Sun Jan 11 00:00:00 CST 2020,

Date date = (Date) format.parse(stringDate);

System.out.println(date);

System.out.println(date.compareTo(now)); //输出-1

}

}

注意,String日期格式化Date 会给他默认的时间 00:00:00

String stringDate = "2020-03-11"; //Date时间,格式:Sun Jan 11 00:00:00 CST 2020,

Date date = (Date) format.parse(stringDate);

3. 使用before(); after(); 返回类型boolean

public class DateCompareTest {

public static void main(String[] args) throws ParseException {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String stringDate = "2020-03-11 12:12:11";

Date date = (Date) format.parse(stringDate);

Date time = new Date();

System.out.println(date.after(time)); //输出false

System.out.println(date.before(time)); //输出true

}

}

小知识补充

经常看到格式化有不同的写法,不仔细看,还以为他们一样,其实还是有差别的

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd HH:mm:ssS

yyyy-MM-dd hh:mm:ss

SimpleDateFormat 语法SimpleDateFormat语法解释

G

年代标志

y

M

d

h

时(在上午或下午1-12)

H

时(一天 0~23)

m

s

S

毫秒

E

星期

D

一年中的第几天

F

一个月的第几个星期几

w

一年中的第几个星期

W

一月中的第几个星期

a

上午 / 下午 标记符

k

时 (在一天中 1~24)

K

时 (在上午或下午 0~11)

z

时区

这些可以自己搭配使用

public class SimpleDateFormatTest {

public static void main(String[] args) {

Date now = new Date();

SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

SimpleDateFormat format3 = new SimpleDateFormat("yyyy年MM月dd日 一年中的第 D 天 一年中第w个星期 一月中第W个星期");

System.out.println(format1.format(now)); //输出 2020/03/12 14:38:34

System.out.println(format2.format(now)); //输出 2020年03月12日 14时38分34秒

System.out.println(format3.format(now)); //输出2020年03月12日 一年中的第 72 天 一年中第11个星期 一月中第2个星期

}

}

相关推荐

365365bet官网 奶块怎么挖钻石最容易

奶块怎么挖钻石最容易

📅 08-30 👁️ 9713
365365bet官网 观音菩萨(Avalokiteshvara/Guanyin)—— 历史与思想概述

观音菩萨(Avalokiteshvara/Guanyin)—— 历史与思想概述

📅 09-14 👁️ 5184
足球365官网是哪个 LOL各大区人数排名:艾欧尼亚稳居第一,其他大区差距有多大?

LOL各大区人数排名:艾欧尼亚稳居第一,其他大区差距有多大?

📅 10-24 👁️ 8524