时间比较的几种方法

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

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个星期
    }
}

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中有多种处理时间的方式,下面是一些常用的时间比较方法: 1. 使用datetime模块:datetime模块提供了datetime类,可以用于表示日期和时间。可以通过比较两个datetime对象来进行时间比较。例如,可以使用datetime.now()获取当前时间,并与其他时间进行比较。 示例代码: ```python from datetime import datetime # 获取当前时间 now = datetime.now() # 创建一个指定时间的datetime对象 other_time = datetime(2022, 1, 1, 0, 0, 0) # 比较两个时间 if now > other_time: print("当前时间晚于指定时间") else: print("当前时间早于指定时间") ``` 2. 使用time模块:time模块提供了一些处理时间的函数,例如time.time()可以获取当前时间时间戳,可以通过比较两个时间戳来进行时间比较。 示例代码: ```python import time # 获取当前时间时间戳 now_timestamp = time.time() # 创建一个指定时间时间戳 other_timestamp = time.mktime((2022, 1, 1, 0, 0, 0, 0, 0, 0)) # 比较两个时间戳 if now_timestamp > other_timestamp: print("当前时间晚于指定时间") else: print("当前时间早于指定时间") ``` 3. 使用dateutil模块:dateutil模块是一个第三方库,提供了更加灵活和方便的时间处理方法。可以使用dateutil.parser.parse()函数将字符串解析为datetime对象,然后进行比较。 示例代码: ```python from dateutil.parser import parse # 解析字符串为datetime对象 now = parse("2022-01-01 00:00:00") # 创建一个指定时间的datetime对象 other_time = parse("2022-01-01 00:00:00") # 比较两个时间 if now > other_time: print("当前时间晚于指定时间") else: print("当前时间早于指定时间") ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值