Java 日期转换详解及实例代码
作者:lqh 发布时间:2021-06-30 02:15:43
Java 日期转换
涉及的核心类:Date类、SimpleDateFormat类、Calendar类
一、 Date型与long型
Date型转换为long型
Date date = new Date();//取得当前时间Date类型
long date2long = date.getTime();//Date转long
long型转换为Date型
long cur = System.currentTimeMills();//取得当前时间long型返回
Date long2date = new Date(cur);//long转Date
二、Date型与String型
Date型转换为String型
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");//设置目标转换格式为yyyy-MM-dd HH:mm:ss.SSS
String date2string = sdf.format(date);//Date转String
String型转换为Date型
String str="2001-11-03 11:12:33.828";//设置初始string类型日期
Date str2date=sdf.parse(str);//String转Date
三、Date型与Calendar型
Date型转换为Calendar型
Calendar cal = Calendar.getInstance();//取得当前时间Calendar类型
cal.setTime(date); //Date转Calendar
Calendar型转换为Date型
Calendar cal = Calendar.getInstance();//取得当前时间Calendar类型
Date cal2date = cal.getTime();//Calendar转Date
四、总结
String与基本类型之间的转换依靠的是String.valueOf()方法
Date与String类之间的转换依靠的是SimpleDateFormat类
Date与long转换依靠的是Date提供的构造以及getTime()方法
Date与Calendar转换依靠的是Calendar提供的setTime()及getTime()方法
五、面试题
Q:写一个方法,参数是Date date,将date往后推3天,在以“yyyy-mm-dd”格式返回字符串类型
public String add3Day(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(date);//Date转换为Calendar
cal.add(Calendar.DATE, 3);//将日期往后推3天,减少3天则-3. 月增加则Calendar.MONTH
String after = sdf.format(cal.getTime());//Calendar转换为Date,再转换为String
return after;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


猜你喜欢
- 在使用官方的showModalBottomSheet这个组件时到目前为止遇到了三个比较坑的地方1. 无法直接设置圆角;2. 组件最多只能撑满
- tk.mybatis扩展自己的通用mapper目的:tk.mybatis 提供的通用mapper,虽然使用方便,不过在有些sql还是不能满足
- Android安装apk文件并适配Android 7.0详解首先在AndroidManifest.xml文件,activity同级节点注册p
- 背景为了了解Seata AT模式的原理,我通过源码解读的方式画出了Seata AT模式启动的图示:如果是基于Springboot项目的话,项
- 本文实例讲述了Android测量每秒帧数Frames Per Second (FPS)的方法。分享给大家供大家参考。具体如下:MainThr
- 一、队列简介队列是一个有序列表,遵循“先入先出”的原则,即先存入队列的数据要先取出,后存入的数据后取出。队列有两种存储表示,顺序表示和链式表
- 本篇随笔将讲解一下Android当中比较常用的两个布局容器--ScrollView和HorizontalScrollView,从字面意义上来
- 目录前言项目环境1.线程池示例2.shutdown3.isShutdown4.isTerminated5.awaitTermination6
- MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移
- 在maven的pom.xml里面添加一下依赖:<properties><project.build.sourceEncod
- 传统方式克隆羊问题现在有一只羊 tom,姓名为: tom,年龄为:1,颜色为:白色,请编写程序创建和 tom羊属性完全相同的10只羊。传统方
- 前言:2022年Java将有什么新的特性和改进,我相信很多Java开发者都想知道。结合Java语言架构师布莱恩·格茨(
- 初学者,照着书上的抄袭制作,但已经理解了里面的意思和应用,并且进行了稍微改善和异常捕捉。这里记录下,以防以后用到这方面的知识点。窗体设计:c
- 今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:my
- Remember me功能就是勾选"记住我"后,一次登录,后面在有效期内免登录。先看具体配置:pom文件:<dep
- 前言socket是软件之间通讯最常用的一种方式。c#实现socket通讯有很多中方法,其中效率最高就是异步通讯。异步通讯实际是利用windo
- 首先引入pom <!--SpringBoot 2.1.0--> <parent>  
- 一:Android 中Home键监听和Back键监听的区别:(1).在Android中,当按下Home键的时候,默认情况下Stop前台的Ac
- 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这是建造者模式的标准表达,不过看着让人迷惑,什么叫构建
- 本文实例讲述了Android编程实现任务管理器的方法。分享给大家供大家参考,具体如下:任务管理器可以实现的功能有:1.查看当前系统下运行的所