时间

news/2025/1/11 23:34:28/文章来源:https://www.cnblogs.com/Chengkai730/p/18550542

JDK7 时间

全世界的时间, 有一个统一的计算标准.

格林尼治时间/格林威治时间 (Greenwich Mean Time) 简称 GMT. 计算核心: 地球自转一天是 24 小时, 太阳直射时为正午 12 点. 后来发现计算误差较大, 现在格林威治时间已经不再作为标准时间来使用了.

到了 2012 年 1 月, 取消了用了将近 130 年的回归制标准时间. 现在, 标准时间是由原子钟来提供的.

原子钟: 利用铯原子的震动的频率计算出来的时间, 作为世界标准时间 (UTC)

铯原子每振动 9,192,631,770 次等于 1 秒钟. 这种计算方式是非常精准的, 2000 万年的误差为 1 秒钟.

中国位于东八区, 要在世界标准时间的基础上加 8 小时.

Date 类

Date 类是一个 JDK 写好的 Javabean 类, 用来描述时间, 精确到毫秒.

利用空参构造创建的对象, 默认表示操作系统当前时间.

利用有参构造创建的对象, 表示指定的时间.

程序示例:

import java.util.Date;public class demo1 {public static void main(String[] args) {/*public Date() 创建Date对象, 表示当前时间public Date(long date) 创建Date对象, 表示指定时间public void settime(long time) 设置/修改毫秒值public long gettime() 获取时间对象的毫秒值*/// 1.创建对象表示一个时间Date d1 = new Date();System.out.println(d1);// 2.创建对象表示一个指定的时间Date d2 = new Date(0L);  // 从时间原点开始, 过了 0 毫秒的那个时间System.out.println(d2);// 3.settime 修改时间// 1000毫秒=1秒d2.setTime(1000L);System.out.println(d2);// 4.getTime获取当前时间的毫秒值long time = d2.getTime();System.out.println(time);}
}

程序示例:

import java.util.Date;
import java.util.Random;public class demo2 {public static void main(String[] args) {/*需求1:打印时间原点开始一年之后的时间需求2:定义任意两个Date对象, 比较一下哪个时间在前, 哪个时间在后*/// 需求2:定义任意两个Date对象, 比较一下哪个时间在前, 哪个时间在后Random r = new Random();// 创建两个时间对象Date d1 = new Date(Math.abs(r.nextInt()));Date d2 = new Date(Math.abs(r.nextInt()));long time1 = d1.getTime();long time2 = d2.getTime();if (time1 > time2) {System.out.println("第一个时间在后面, 第二个时间在前面");} else if (time1 < time2) {System.out.println("第二个时间在后面, 第一个时间在前面");} else {System.out.println("表示两个时间一样");}}private static void method() {// 需求1:打印时间原点开始一年之后的时间// 1.创建一个对象, 表示时间原点Date d1 = new Date(0L);// 2.获取d1时间的毫秒值long time = d1.getTime();// 3.在这个基础上我们要加一年的毫秒值即可time = time + 1000L * 60 * 60 * 24 * 365;// 4.把计算之后的时间毫秒值, 再设置回d1当中d1.setTime(time);// 5.打印d1System.out.println(d1);}
}

SimpleDateFormat 类

Date 类只能按照固定的格式打印时间, 而这个格式不符合一般的阅读习惯.

SimpleDateFormat 类的作用:

  • 格式化: 把时间变成我们喜欢的格式.

  • 解析: 把字符串表示的时间变成 Date 对象.

图片名称

 

图片名称

 

图片名称

 

图片名称

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class demo3 {public static void main(String[] args) throws ParseException {/*public simpleDateFormat() 默认格式public simpleDateFormat(String pattern) 指定格式public final string format(Date date) 格式化(日期对象 ->字符串)public Date parse(string source) 解析(字符串 ->日期对象)*/// 1.定义一个字符串表示时间String str = "2023-11-11 11:11:11";// 2.利用空参构造创建simpleDateFormat对象// 细节:// 创建对象的格式要跟字符串的格式完全一致SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(str);// 3.打印结果System.out.println(date);  // Sat Nov 11 11:11:11 CST 2023System.out.println(date.getTime());  // 1699672271000System.out.println("--------------------------------------------------------");method1();System.out.println("--------------------------------------------------------");}private static void method1() {// 1.利用空参构造创建simpleDateFormat对象, 默认格式SimpleDateFormat sdf1 = new SimpleDateFormat();Date d1 = new Date(0L);String str1 = sdf1.format(d1);System.out.println(str1);  // 1970/1/1 上午8:00// 2.利用带参构造创建simpleDateFormat对象, 指定格式SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str2 = sdf2.format(d1);System.out.println(str2); // 1970年01月01日 08:00:00// 课堂练习:yyyy年MM月dd日 时:分:秒 星期SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE");String str3 = sdf3.format(d1);System.out.println(str3); // 1970年01月01日 08:00:00 周四}
}

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class demo4 {public static void main(String[] args) throws ParseException {/** 假设, 你初恋的出生年月日为:2000-11-11* 请用字符串表示这个数据, 并将其转换为:2000年11月11日** 创建一个Date对象表示2000年11月11日* 创建一个SimpleDateFormat对象, 并定义格式为年月日把时间变成:2000年11月11日*/// 1.可以通过2000-11-11进行解析, 解析成一个Date对象String str = "2000-11-11";// 2.解析SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf1.parse(str);// 3.格式化SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");String result = sdf2.format(date);System.out.println(result);  // 2000年11月11日}
}

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class demo5 {public static void main(String[] args) throws ParseException {/** 需求:* 秒杀活动开始时间:2023年11月11日 0:0:0(毫秒值)* 秒杀活动结束时间:2023年11月11日 0:10:0(毫秒值)** 小贾下单并付款的时间为:2023年11月11日 0:01:0* 小皮下单并付款的时间为:2023年11月11日 0:11:0* 用代码说明这两位同学有没有参加上秒杀活动?*/// 1.定义字符串表示三个时间String startstr = "2023年11月11日 0:0:0";String endstr = "2023年11月11日 0:10:0";String orderstr = "2023年11月11日 0:01:00";// 2.解析上面的三个时间, 得到Date对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");Date startDate = sdf.parse(startstr);Date endDate = sdf.parse(endstr);Date orderDate = sdf.parse(orderstr);// 3.得到三个时间的毫秒值long startTime = startDate.getTime();long endTime = endDate.getTime();long orderTime = orderDate.getTime();// 4.判断if (orderTime >= startTime && orderTime <= endTime) {System.out.println("参加秒杀活动成功");  // 参加秒杀活动成功} else {System.out.println("参加秒杀活动失败");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835348.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贴代码框架PasteForm特性介绍之markdown和richtext

简介 PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管理端只有Html+js版本的,后续将支持小程序,Vue等 案例源码 案例源…

MATLAB用CNN-LSTM神经网络的语音情感分类深度学习研究

全文链接:https://tecdat.cn/?p=38258 原文出处:拓端数据部落公众号 在语音处理领域,对语音情感的分类是一个重要的研究方向。本文将介绍如何通过结合二维卷积神经网络(2 - D CNN)和长短期记忆网络(LSTM)构建一个用于语音分类任务的网络,特别是针对语音情感识别这一应…

2024长城靶场训练

仿射密码 首先题目描述 使用仿射函数y=3x+9加密得到的密文为JYYHWVPIDCOZ,请尝试对其解密。flag为flag{大写明文}。 1、使用在线网站直接破解或手工计算破解,获得flag。(参数a=3,b=9,对应仿射函数y=3x+9) 仿射密码加密_仿射密码解密手工计算使用解密函数为D(x) = a^-1(x …

学期2024-2025-1 学号20241421 《计算机基础与程序设计》第8周学习总结

作业信息 |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08| |这个作业的目标|功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、…

QObject,QMainWindpw,QWidget,QDialog介绍

QObject QObject 的角色和特点 在 Qt 框架中,QObject 是整个对象模型的核心基类,它为 Qt 对象树 和 信号-槽机制 提供了基础支持。很多 Qt 的类(包括 QWidget、QDialog、QMainWindow)都直接或间接继承自 QObject。 QObject 的核心功能对象树管理(Object Tree)QObject 提供…

2024-2025-1 20241329 《计算机基础与程序设计》第八周学习总结

作业信息 作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP 作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08 作业目标:功能设计与面向对象设计;面向对象设计过程;面向对象语言三要素;汇编、编译、解释、执行 作业正文:https://www…

Alpha冲刺(4/14)——2024.11.15

目录一、团队成员分工与进度二、成员任务问题及处理方式三、冲刺会议内容记录会议内容四、GitHub签入记录及项目运行截图GitHub签入记录五、项目开发进展及燃尽图项目开发进展燃尽图六、团队成员贡献表 一、团队成员分工与进度成员 完成的任务 完成的任务时长 剩余时间施靖杰 完…

高三鲜花 #2

水发现放假之后其实连鲜花都是不想写的了。 所以这是钓鱼博。 也不能钓这么直接,还是需要写一点东西的。 应该是马上就距离高考还剩 200 天了。然后这里本来写了很多关于 whk 的文本,全删了,觉得有点无意义,毕竟这应该是一篇钓鱼博。 whk 真难。 突然发现我已经退役四个月了…

语文成绩

语文成绩(https://www.luogu.com.cn/record/189365158) 题目描述 语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮她吗? 输入格式 第一行有两个整数 n,p,代表学生数与增加分数的次数。…

「LUCKY STUN穿透」使用Cloudflare的页面规则固定和隐藏网页端口

关于本教程 索引 │ ├─关于本教程 │ ├─在STUN穿透环境中使用WEB服务 │ ├─动态端口带来的麻烦 │ ├─“隐藏端口”和固定端口 │ └─可用的解决方法 │ ├─使用邮件进行通知端口变化 │ └─使用HTTP重定向 │ ├─网络环境优化和STUN穿透规则设…

平板电视食用教程

先来看一道大家基本都能默写出来的题目: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入一个数 \(x\)。 删除一个数 \(x\)(若有多个相同的数,应只删除一个)。 定义排名为比当前数小的数的个数 \(+1\)。查询 \(x\) 的排名。 查询数据结…

企业集成模式-第十二章

十二、中场演练:系统管理示例管理控制台:显式所有组件的工作状态(下图一) 贷款中介的服务质量:监视请求响应时间 验证信用机构的操作:周期性地发送测试消息,希望确信该服务在正常运行(下图二) 信仰机构的故障恢复:如果信仰机构出现故障,希望把信用请求消息临时重定向…