今天来整理一下java中的日期类
1 时间原点的概念
八种基本数据类型包括字符串最终都可以以数字的方式表现出来(数据就是二进制,而二进制是可以转换成10进制的)
日期类型类似,2022年1,1,也可以用一个数字来代替
在日期中最特殊的数字其实也是0,0这个日期代表的就是java中时间的原点——》1970,1,1 8,0,0 1969全球发布了第一个unix系统,综合考虑就认为1970
凡是在这个0点的基础上,过一毫秒,意味着+1

2 创建日期对象

     //当前时间Date date=new Date();System.out.println(date);//Wed Aug 28 14:39:16 CST 2019//从原点过了100秒的时间//1970 01 01 08:00:00  100//1970 01 01 08:01:40  100//1000毫秒=1秒  100000=100sDate date2=new Date(100000);、//也就是从原点时间过了100000毫秒System.out.println(date2);//Thu Jan 01 08:01:40 CST 1970

3 getTime的使用
getTime()返回一个long整型
这个数代表从197011800开始每过一毫秒就增加1
直接打印对象会出现这样的日期格式:Wed Aug 28 14:39:16 CST 2019
可是阅读性差,需要转换成数字,方便阅读,至于格式化后面会讲

     Date now=new Date();System.out.println(now);//当前时间距离原点时间一共过了多少毫秒System.out.println(now.getTime());//1566974943085//如果要得到原点Date zero=new Date(0);System.out.println(zero.getTime());

4 运行一段程序需要多少时间


//计算一段程序运行了好久时间
public class Damo4 {public static void main(String[] args) {Damo4 damo4=new Damo4();damo4.forTest();}//观察一个程序执行多少时间public long startTime() {return new Date().getTime();}//10万次的for循环public  void forTest() {long startTime=startTime();int sum=0;for(int i=1;i<100000;i++) {sum+=i;//new DateTest("name:"+i);}System.out.println(sum);long endTime=endTime();long result=endTime-startTime;System.out.println(result);}public long endTime() {return new Date().getTime();}
}

5 System.currentTimeMills()
当前日期的毫秒数
理论上说getTime,currentTimeMills两个值应该是一样的,但是由于机器性能不相同,彼此相差几十毫秒,因为每一行代码实际上都需要时间来运行

     public void show() {int sum=0;for(int i=1;i<100000;i++) {sum+=i;//new DateTest("name:"+i);}System.out.println(sum);System.out.println(System.currentTimeMillis());}

运行结果为:
704982704
1566994316913

6 日期格式化
6.1 日期格式化成字符串

     //y year 年//m month 月//d day 日//h hour 小时//m minute 分钟//s seconds 秒//s milliseconds 毫秒SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SS");Date now=new Date();String nowStr=sdf.format(now);System.out.println(nowStr);//2019-08-28 15:25:01 546

6.2 字符串格式化成日期

     SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");String str="2019/8/28 11:12:01";try {Date date=sdf.parse(str);//DateForamt.parset(str)System.out.println(date);//Unparseable date: "2019/8/28 11:12:01"//Wed Aug 28 11:12:01 CST 2019} catch (ParseException e) {e.printStackTrace();}

注意:字符串转日期类的时候需要注意格式必须匹配到一起,否则可能会报异常

7 日历
通过日历类管理日期

日历最佳实践案例:翻日历
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;//util 工具
//需求:打印当前时间,下个月的今天,上个月的今天,去年的今天,上个月的第三天
public class TestDate01 {//设定打印的时间格式//simpledateformatprivate static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static void main(String[] args) {//搞一个日历耍耍Calendar c=Calendar.getInstance();//获取今天Date now=c.getTime();print(now);//2019-08-28 16:26:54//下个月的今天——每个月有固定的天数28 29 30 31//我要把今天加入日历c.setTime(now);//翻日历c.add(Calendar.MONTH,1);//下个月的今天 1 就是一个月后多一天//calendar.add(Calendar.MONTH, -3);//减号,就是前几个月。加号,就是往后几个月//calendar.add(Calendar.DATE, -3);//减号,就是当前日期的前几天,加号,就是当前时间的后几天//calendar.add(Calendar.YEAR, -3);//减号,就是当前年份的前几年,加号,就是当前年份的后几年Date nextMonthNow=c.getTime();print(nextMonthNow);//获取去年的今天c.setTime(now);c.add(Calendar.YEAR,-1);print(c.getTime());//上个月的第三天c.setTime(now);c.add(Calendar.MONTH,-1);//不改变大字段,改变小字段--不改年月改曰c.set(Calendar.DATE,3);print(c.getTime());}//打印格式private static void print(Date date) {System.out.println(sdf.format(date));}}

java Date 日期格式化相关推荐

  1. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  2. dateformat 返回类型_SpringBoot返回date日期格式化

    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差 问题描述 在Spring Boot项目中,使用@RestController注解,返回的java对象中 ...

  3. mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  4. java时间日期格式化和JDBC中的处理

    java时间日期格式化和JDBC中的处理 时间格式化类 SimpleDateFormat类 字符串格式化为时间对象 .parse()方法 时间对象格式化为字符串 .format()方法 DateTim ...

  5. Java Date日期的比较

    Java Date日期的比较 为何要写这篇博客 实践方法 总结 为何要写这篇博客 Date类日期比较可以应用在很多方面上,例如集合时间的筛选,或者数据库数据的筛选.因为多个方法可以应用在不同方法之上, ...

  6. Java Date类型格式化,不同日期格式转换,获取N天后的日期,CommonUtil工具

    文章目录 Date类型格式化为各种格式字符串 不同日期格式的字符串之间的转换 获取N天后的日期 实用工具类库common-util使用 参考链接 Date类型格式化为各种格式字符串 java 日期格式 ...

  7. 震惊!java中日期格式化的大坑!

    前言 我们都知道在java中进行日期格式化使用simpledateformat.通过格式 yyyy-MM-dd 等来进行格式化,但是你知道其中微小的坑吗? yyyy 和 YYYY 示例代码 @Test ...

  8. Java Date 日期 时间 相关方法

    DateTools.java import java.text.SimpleDateFormat; import java.util.Date; /*** 日期操作类*/ public class D ...

  9. java 验证时间格式 效率_有关Java中日期格式化的效率实录

    java中格式化日期为固定格式的字符串,无外乎有两种方法:DateFormat 和String.format(JDK1.5+) 但是哪个方法效率更高呢?本人做了一个实验,发现了一个很有趣的现象. 当系 ...

最新文章

  1. 「可解释ML/3D深度学习等」Github六月最受欢迎的机器学习库来啦
  2. C++继承的基本语法
  3. 区块链到底是什么?和普通人有什么关系?
  4. vue 获取url地址的参数_Vue 网络请求框架 axios 使用教程
  5. 算法大赛十强战队解题方案大公开!【附PPT下载】
  6. 为什么c++文件只能执行一次_numba从入门到精通(1)—为什么numba能够加速
  7. MySQL5.7 踩坑实录
  8. Python爬虫 之 破解 cookie 代理 验证码 实战
  9. 方差分析 球形检验_方差分析的前提,与检验,以及球形检验
  10. scree VS tmux
  11. linux 编译chromium,chromium(linux环境)指定版本下载和编译教程
  12. 穿行大街小巷 寻找“没落儿”的扬州
  13. 【Angular中的RxJS】- Subject 分类介绍
  14. OpenDaylight(ODL)学习笔记
  15. BL0940电能计量 设计
  16. [地图]常用的地图结构
  17. 衡水二中2021清华北大高考成绩查询,衡水二中成为“清华大学2020年优质生源中学”...
  18. LLVM:Rust、Clang等语言的强大支持以及编译原理和过程
  19. python 3.5 urllib
  20. 中文汉字注音,汉字转拼音,支持图片识别文字,支持结果转图下载,附上小程序核心源码

热门文章

  1. 软件测试----淘宝购物车测试用例
  2. Excel应该这么玩——7、我是预言家:绘制趋势图
  3. 方舟端游刚进入服务器显示er,方舟生存进化:老外地穴建家以为万无一失,结果被主播一锅端...
  4. linux 游戏军团要塞 2,Mesa 19.0 可以减少《军团要塞2》一半的内存
  5. python字符串排序方法
  6. 2022年湖南省安全保护服务人员(中级保安员)考试练习题及答案
  7. android 电量排行榜,续航时间长的安卓手机有哪些?2020长续航安卓手机排行榜
  8. 基于采样的规划算法之RRT家族(二):RRT-Connect
  9. LeetCode 1260. 二维网格迁移
  10. 【TCL基础】基本命令