时间戳概念

时间戳概念

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,本质是一个long类型的整数,表示日期对象。java 体系的时间戳是毫秒

java.util.Date

Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。

Date 类有如下两个构造方法。

Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),
使用该构造方法创建的对象可以获取本地的当前时间。
Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0
秒开始经过参数 date 指定的毫秒数
在这里插入图片描述
Date 类的无参数构造方法获取的是系统当前的时间,显示的顺序为星期、月、日、小时、分、秒、
年。
Date 类带 long 类型参数的构造方法获取的是距离 GMT 指定毫秒数的时间,60000 毫秒是一分钟,
而 GMT(格林尼治标准时间)与 CST(中央标准时间)相差 8 小时,也就是说 1970 年 1 月 1 日
00:00:00 GMT 与 1970 年 1 月 1 日 08:00:00 CST 表示的是同一时间。 因此距离 1970 年 1 月 1 日
00:00:00 CST 一分钟的时间为 1970 年 1 月 1 日 00:01:00 CST,即使用 Date 对象表示为 Thu Jan 01
08:01:00 CST 1970。
在这里插入图片描述
作业:1. 建立指定的日历
var c = Calendar.getInstance();
//1995 10 20 18:30:50
c.set(1995, Calendar.OCTOBER, 20, 18, 30, 50);
System.out.printf(“%tF %<tT”, c);
2.建立指定的日历
var c = Calendar.getInstance();
//1995 10 20 18:30:50
c.set(1995, Calendar.OCTOBER, 20, 18, 30, 50);
System.out.printf(“%tF %<tT”, c);
输出7天前日期
建立指定的日历
var c = Calendar.getInstance();
//1995 10 20 18:30:50
c.set(1995, Calendar.OCTOBER, 20, 18, 30, 50);
System.out.printf(“%tF %<tT”, c);

4.了解idea整个项目,查找 替换功能。
ctrl + shift + f 查找
ctrl + shift + r 替换

5.实现微信信息提示的日期信息计算功能。
刚刚
分钟前
小时前
天前
xxxx-xx-xx xx:xx:xx

package cn.webrx.calendarexample;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Ex4 {
    public static void main(String[] args) throws ParseException {
	String time = "2023-10-11 2:05:00";
	String msg = "你好,在吗?";
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	long ti = sdf.parse(time).getTime();
	long nn = System.currentTimeMillis();

	if ((nn - ti) / 1000 / 60 < 1) { //<1分钟
	    System.out.printf("刚刚:%s%n", msg);
	}

	long t1 = (nn - ti) / 1000 / 60;
	if (t1 >= 1 && t1 < 60) { //>1分钟 < 60分钟
	    System.out.printf("%d分钟前:%s%n", t1, msg);
	}

	long t2 = (nn - ti) / 1000 / 60 / 60;
	if (t2 >= 1 && t2 < 24) {//小时
	    System.out.printf("%d小时前:%s%n", t2, msg);
	}

	long t3 = (nn - ti) / 1000 / 60 / 60 / 24;
	if (t3 >= 1 && t3 <= 7) {
	    System.out.printf("%d天前:%s%n", t3, msg);
	} else if (t3 > 7) {
	    System.out.printf("%tF %<tT:%s%n", ti, msg);
	}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值