分别对时分秒加减的java_Java中关于获取时间(日期)的总结大全
文章目录
1.相关类
1.1 java.util.Date
1.2 java.text.DateFormat(抽象类)
1.3 java.text.SimpleDateFormat(DateFormat的直接子类)
1.4 java.util.Calendar(抽象类)
2.示例
2.1 日期取值
2.1.1 获取当前系统时间(毫秒数)
2.2 日期转换
2.2.1 日期转字符串、字符串转日期
2.2.2 将日期转换成中文年月日时分秒
2.2.3 将指定日期转换成带周的格式
2.2.4 获取当前时间显示,上午,下午
2.2.5 时间秒转化为多少天小时分秒
在开发过程中,少不了与时间打交道,比如根据两个日期得出相差的时分秒,时间加减,时间累加,前5分钟,前一个月,前一年,等等…
在JAVA中有六个与时间有关的类:
java.util.Date
java.sql.Date
java.sql.Time
java.sql.Timestamp
java.text.SimpleDateFormat
java.util.Calendar
常用的也就是下面的几个:
Date: getTime() setTime()
Calendar: getInstance() getDateInstance() getDateTimeInstance() getTimeInstance()
DateFormat: getInstance() getDateInstance() getDateTimeInstance() getTimeInstance()
SimpleDateFormate: Formate(Date) parse(String s)
1.相关类
下面分别对他们介绍下:
1.1 java.util.Date
java.util.Date 是java.sqlDate,Time,Timestamp的父类,Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代
1.2 java.text.DateFormat(抽象类)
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年1 月 1 日 00:00:00 这一刻开始的毫秒数。不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大;但DateFormat是SimpleDateFormat的父类。
1.3 java.text.SimpleDateFormat(DateFormat的直接子类)
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。
日期格式字符串如下:
字符
含义
示例
y
年
yyyy—2020年
M
月
MM—03月
d
日
dd—06日
E
星期
E—星期日
a
上下午
a—上午(am)/下午(pm)
H
小时(24小时制)
HH:mm:ss—22:57:10
h
12小时制
hh:mm:ss—10:57:10
m
分
HH:mm:ss—22:57:10
s
秒
HH:mm:ss—22:57:10
常见的转换有两种:
将Date格式化为String:String format(Date d)
将String解析为Date:Date parse(String s)
1.4 java.util.Calendar(抽象类)
java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
2.示例
大概可以分为以下五大类:
2.1 日期取值
2.1.1 获取当前系统时间(毫秒数)
public void getNowDate(){
//方式一
Date date = new Date();
System.err.println(date.getTime());
//方式二
System.err.println(System.currentTimeMillis());
//转换成指定的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String current = sdf.format(System.currentTimeMillis());
System.err.println(current);
}
1583509366861
1583509366861
2020-03-06 23:42:46
2.2 日期转换
2.2.1 日期转字符串、字符串转日期
public void stringOrDateChange(){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//1、日期转字符串
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
String dateStringParse = sdf.format(date);
System.err.println(dateStringParse);
//2、字符串转日期
String dateString = "2020-03-06 23:36:47";
Date dateParse = sdf.parse(dateString);
System.err.println(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
}
2020-03-06 23:43:40
Fri Mar 06 23:36:47 CST 2020
注意:
创建 SimpleDateFormat 对象时必须指定转换格式。
转换格式区分大小写,yyyy 代表年份,MM 代表月份,dd 代表日期,HH 代表 24 进制的小时,hh 代表 12 进制的小时,mm 代表分钟,ss 代表秒。
2.2.2 将日期转换成中文年月日时分秒
public void dateToChinese(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
String dateStr = sdf.format(date);
System.err.println(dateStr);
}
2020年03月06日 23时55分46秒
2.2.3 将指定日期转换成带周的格式
public void dateToWeek(){
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = df.parse("2020-03-06 23:43:40");
//指定日期
Calendar cal = df.getCalendar();
//当前时间
Calendar cas = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH);//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日 "+hour+"时"+minute+"分"+second+"秒 星期"+WeekOfYear);
} catch (ParseException e) {
e.printStackTrace();
}
}
现在的时间是:公元2020年2月6日 11时43分40秒 星期6
2.2.4 获取当前时间显示,上午,下午
public void getAmAndPm(){
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println("只显示出时分秒:"+df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println("显示日期,时间(精确到分):"+df7.format(date));
}
2020-3-7
2020-3-7 0:18:28
只显示出时分秒:0:18:28
显示日期,周,上下午,时间(精确到秒):2020年3月7日 星期六 上午12时18分28秒 CST
显示日期,上下午,时间(精确到秒):2020年3月7日 上午12时18分28秒
显示日期,上下午,时间(精确到分):20-3-7 上午12:18
显示日期,时间(精确到分):2020-3-7 0:18:28
2.2.5 时间秒转化为多少天小时分秒
public void formatSeconds(){
long seconds = 100000000L;
String timeStr = seconds + "秒";
if(seconds > 60){
long second = seconds % 60;
long min = seconds / 60;
timeStr = min + "分" + second + "秒";
if(min > 60){
min = (seconds / 60) % 60;
long hour = (seconds / 60) / 60;
timeStr = hour + "小时" + min + "分" + second + "秒";
if(hour>24){
hour = ((seconds / 60) / 60) % 24;
long day = (((seconds / 60) / 60) / 24);
timeStr = day + "天" + hour + "小时" + min + "分" + second + "秒";
}
}
}
System.err.println(timeStr);
}
1157天9小时46分40秒
分别对时分秒加减的java_Java中关于获取时间(日期)的总结大全相关推荐
- python计算时间加减,python datetime库使用和时间加减计算
datetime库使用 一.操作当前时间 1.获取当前时间 >>> import datetime >>> print datetime.datetime.now( ...
- c语言字符串加减_C语言中指针的介绍
C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...
- java 时分秒加减_JAVA日期加减运算
public static Date getBeforeMonth(Date date,int months) { Calendar calendar = Calendar.getInstance() ...
- 日期类的加减及java中所以日期类的操作算法大全
1.计算某一月份的最大天数 1Calendar time=Calendar.getInstance(); 2time.clear(); 3time.set(Calendar.YEAR,year); / ...
- js日期加减一天_用js进行日期的加减
如题,开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下 ...
- Linux常用命令(中)、时间日期类、date 显示当前时间、ntpdate命令、cal 查看日历、useradd 添加新用户、passwd 设置用户密码、id 查看用户是否存在
文章目录 1.3 时间日期类 1.3.1 date 显示当前时间 1.3.2 date 显示非当前时间 1.3.3 date 设置系统时间 1.3.4ntpdate命令 ntpdate常用服务器 国内 ...
- c#.net 获取时间日期年月日时分秒生成自动文件名格式
下面是日期和时间的各种方法,转换为字符串. 如果把输出的格式改下就可以做类似的文件名了,例如:2016010110101224356.doc c#用DateTime.Now.ToString(&qu ...
- c#.net 获取时间日期年月日时分秒格式(转)
今天写代码发现两个比较不错的分享下: 1.DateTime.ParseExact 很多时候我们获取的时间是数字形式表示的,好比20140127134015.927856,通过这个方法 DateTime ...
- cookie获取java_java中如何获取cookie
展开全部 1.设置cookie到客户端 Cookie c1 = new Cookie("username","hzh"); response.addCookie ...
最新文章
- 2021 IEEE热门AI话题盘点:模仿生物大脑打造神经网络、GPT3“不当言论”惹关注…...
- 程序员的一个爬虫,把估值175亿的马蜂窝给捅了
- leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)
- 关于完美拖拽的问题三
- 【Python CheckiO 题解】Digits Multiplication
- C#中的模块化软件开发
- Oracle误操作--被提交后的数据回退(闪回)
- Django-djangorestframework-异常模块-源码及自定义异常
- 运用c语言和Java写九九乘法表
- #Android Studio# 模拟器开发者模式
- 怎么用Python进行Web开发?
- 【机器人学习】 码垛机器人轨迹规划
- IJCAI 2022杰出论文公布,大陆作者中稿298篇拿下两项第一
- rhel centos 源_Rhel centos 7的fips脚本
- 安卓 类微信开发(二)
- 有什么助于睡眠的方法,睡眠不好,一定要知道这些方法
- 怎么修改路由器地址的默认IP
- AMS1117接线图
- java录制声音(采集声卡音频数据)
- 程序猿的2019年终总结
热门文章
- Viola-Jones人脸检测详解
- python 结巴分词(jieba)学习
- Linux 中 VIM 的使用
- ProcessBuilder执行bash脚本
- android support library github,Android Support Library 之 夜间模式
- php代码加文件后缀,php中一行代码获取文件后缀名
- php send helo/ehlo first错误,phpmailer发送邮件提示SMTP server error怎么回事?
- vue 将行转换成对象_Vue简化版实现
- tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
- java 图片分段上传_java 分段读取文件 并通过HTTP上传