这是一篇非常基础的Java技术文章,简单的说就是一个知识点,是自己在写业务代码时的一点总结,大神请绕行。

在 java 里面 表示 时间 ,一种是 java.util.Date 类,一种是 long 型的Unix时间戳,还有一种是String的字符串,当然前两种时间表示方法是时间定义的,可以对其进行操作计算得到一定的时间含义的,String字符串大多是前端显示之用,那当这三种形式共存时,必不可少就需要类型之间的转换及其对时间上的计算操作,这是在做一些业务功能上经常会用到的,现在总结一下通常所用的方法,以来简化后面再用到此类时能节省一定的时间而不需每次都要找度娘。

小典故:Unix时间戳,表示 格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,如果系统为32位系统,则会因为位数不够的情况下,在格林威治时间2038年01月19日03时14分07秒发生溢出,导致系统瘫痪,但目前看来应该 大部分 系统都是 64位的吧,算了算貌似有生之年可以到那一天,不晓得会发生什么事情不。:-D


类型转换

大多是 String 与 Date 之间的转换 ,有一套yyyy-MM-dd HH:mm:ss的表示想必大家应该都知道
在这里和大家推荐一下Apache的 DateUtils , 这个方法 归纳了一些日期上的操作,让你用一句两句话便搞定时间上的操作,真乃神器也,有空看一下它的源码,你就会知道其实还是那么几个类,通常比较好的业务代码,会自己 再封装一个DateUtil ,去归纳总结一下在本业务中需要用到的一些常用的日期操作和符合本系统的日期表达方式。

String 转Date

String[]patters=newString[]{"yyyy-MM-ddHH:mm:ss"};
Date date = DateUtils.parseDate(time,patters)

Date 转String

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

时间戳转Date

long timeStamp = 12345678L;
Date time = new Date(timeStamp);

时间戳要说一句,一般从Date 里面的 getTime()方法获得的是ms级别的10位数字,而业务代码里面一般要用到s级的,因此不要忘记除以1000之后再使用。再推荐一个日期和时间戳转换的网站,供业务功能调试及测试使用,当然你也可以自己写一个~

Date转Calendar

Date date = new Date();
Calendar c = DateUtils.toCalendar(date); // 注意try catch Exception

时间操作

Apache 的 DateUtils 提示已经提供了大部分对 日期 增减的 方法,看里面的方法就会知道:

但如果你对时间有特别的需求,比如说需要取某个时间的 小时 数,这个时候 就需要用到 Calendar ,因此一般的操作是 将Date 转换成Calendar ,再利用Caleadar对时间进行相应的操作,贴了一下相关代码,给个参考

Date date = new Date();
Calendar payTimeCal = DateUtils.toCalendar(date);
int payHour = payTimeCal.get(Calendar.HOUR_OF_DAY);  // 取 小时Calendar startTimeCal = DateUtils.toCalendar(date);
startTime.set(payTimeCal.get(Calendar.YEAR),payTimeCal.get(Calendar.MONTH),payTimeCal.get(Calendar.DATE));  // 给startTime 设置和 PayTimeCal 一样的 年月日    

更多Calendar类的用法等你挖掘,一般看看相应源码就能满足 你当时业务时间功能上的需求。
这又印证了一句古话,See the source code, see the world (嗯,是我说的)。

Java基础入门(一):Java里面的时间相关推荐

  1. JAVA基础入门教程——Java介绍

    1. Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称,目前由Oracle拥有. Java可运行于多个平台,如Win ...

  2. java基础入门数据类型,JAVA基础教程:JAVA的基本数据类型及介绍

    欢迎分享本文,转载请保留出处. java的数据类型可以分为基本数据类型和引用数据类型,其中基本数据类型包括:字节型,字符型,短整型,整型,长整型,单精度型,双精度型和布尔型 引用类型又可以划分为 类, ...

  3. java基础入门了解

    java基础入门了解 Java发展简史 java语言的用处(数据存储,数据分析,数据处理) java被运用的程度 java语言的特点 java语言体系的结构 java语言运行机制 课后知识补充 Jav ...

  4. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  5. 叮!您收到一份超值Java基础入门资料! 1

    Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家Java ...

  6. Linux中的Java类,Java基础入门学习-Java中类的属性

    Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...

  7. Java 基础入门,小白提升路线图

    1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...

  8. Java基础入门:IDEA软件安装和软件初始化设置

    IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量. 它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是I ...

  9. Java基础入门必备词汇汇

    #Java基础入门必备词汇汇 一 1.Public ['pʌblik] 公开 2.Static ['stætik] 静态 3.void [vɔid] 无返回 4.main [main] 主要的,主方法 ...

  10. java基础入门《一》

    java基础入门<一> 先简单的介绍一下有关java的一些基本知识.不做过多解释,因为前期抓紧时间入门,等对java有所了解后回头再来巩固. 什么是java语言:简单的说是一门面向对象程序 ...

最新文章

  1. kotlin设置CORS跨域资源共享,java设置允许跨域,服务端如何设置 springboot中设置跨域资源共享
  2. SUBSTRING函數用法
  3. centos7部署DM8
  4. 错误:“Cannot load JDBC driver class ‘com.mysql.jdbc.Driver”的解决方法
  5. hdu1556 线段树段更新(简单题)
  6. 燃!阿里AI技术取得重大突破:连破中、英语言处理两项世界纪录
  7. python入门文件读取与写入_初学者Python:读取和写入同一文件
  8. 微软Ignite大会约起来
  9. 博客堂怎么连个搜索功能都没有
  10. 任正非采访的数据分析解读
  11. PJ2018T4 对称二叉树 树形结构
  12. (转)数字格式化函数:Highcharts.numberFormat()
  13. qcustomplot绘制热力图瀑布图_使用REmap绘制中国地图
  14. gdp笔记本 linux,Ubuntu MATE 19.04和18.04.2现在可用于GPD Pocket和GDP Pocket 2
  15. Ajax及jQuery学习
  16. 人工智能机器学习笔记 10月15日
  17. Apache HTTP Server与Tomcat 的三种连接方式介绍
  18. 智能指针和自定义删除器
  19. java名字自动生成_Java名字生成器
  20. 深度学习 —— 偏差与方差

热门文章

  1. 苹果手机怎么设置时间24小时制_8款手机电池测试,iPhone 12 5G让人意外
  2. 【转载】Linux安装配置Qt
  3. 前端的面试之旅(一)
  4. 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
  5. 36个创意广告海报欣赏
  6. 关于Reporting Service中的Report builder的几个疑问,高手来解答下
  7. Python的代码结构
  8. Ubuntu上安装oracle java 7
  9. [王晓刚]深度学习在图像识别中的研究进展与展望(转发)
  10. Gearman的使用