文章目录

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中关于获取时间(日期)的总结大全相关推荐

  1. python计算时间加减,python datetime库使用和时间加减计算

    datetime库使用 一.操作当前时间 1.获取当前时间 >>> import datetime >>> print datetime.datetime.now( ...

  2. c语言字符串加减_C语言中指针的介绍

    C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...

  3. java 时分秒加减_JAVA日期加减运算

    public static Date getBeforeMonth(Date date,int months) { Calendar calendar = Calendar.getInstance() ...

  4. 日期类的加减及java中所以日期类的操作算法大全

    1.计算某一月份的最大天数 1Calendar time=Calendar.getInstance(); 2time.clear(); 3time.set(Calendar.YEAR,year); / ...

  5. js日期加减一天_用js进行日期的加减

    如题,开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下 ...

  6. 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常用服务器 国内 ...

  7. c#.net 获取时间日期年月日时分秒生成自动文件名格式

    下面是日期和时间的各种方法,转换为字符串. 如果把输出的格式改下就可以做类似的文件名了,例如:2016010110101224356.doc  c#用DateTime.Now.ToString(&qu ...

  8. c#.net 获取时间日期年月日时分秒格式(转)

    今天写代码发现两个比较不错的分享下: 1.DateTime.ParseExact 很多时候我们获取的时间是数字形式表示的,好比20140127134015.927856,通过这个方法 DateTime ...

  9. cookie获取java_java中如何获取cookie

    展开全部 1.设置cookie到客户端 Cookie c1 = new Cookie("username","hzh"); response.addCookie ...

最新文章

  1. 2021 IEEE热门AI话题盘点:模仿生物大脑打造神经网络、GPT3“不当言论”惹关注…...
  2. 程序员的一个爬虫,把估值175亿的马蜂窝给捅了
  3. leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)
  4. 关于完美拖拽的问题三
  5. 【Python CheckiO 题解】Digits Multiplication
  6. C#中的模块化软件开发
  7. Oracle误操作--被提交后的数据回退(闪回)
  8. Django-djangorestframework-异常模块-源码及自定义异常
  9. 运用c语言和Java写九九乘法表
  10. #Android Studio# 模拟器开发者模式
  11. 怎么用Python进行Web开发?
  12. 【机器人学习】 码垛机器人轨迹规划
  13. IJCAI 2022杰出论文公布,大陆作者中稿298篇拿下两项第一
  14. rhel centos 源_Rhel centos 7的fips脚本
  15. 安卓 类微信开发(二)
  16. 有什么助于睡眠的方法,睡眠不好,一定要知道这些方法
  17. 怎么修改路由器地址的默认IP
  18. AMS1117接线图
  19. java录制声音(采集声卡音频数据)
  20. 程序猿的2019年终总结

热门文章

  1. Viola-Jones人脸检测详解
  2. python 结巴分词(jieba)学习
  3. Linux 中 VIM 的使用
  4. ProcessBuilder执行bash脚本
  5. android support library github,Android Support Library 之 夜间模式
  6. php代码加文件后缀,php中一行代码获取文件后缀名
  7. php send helo/ehlo first错误,phpmailer发送邮件提示SMTP server error怎么回事?
  8. vue 将行转换成对象_Vue简化版实现
  9. tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
  10. java 图片分段上传_java 分段读取文件 并通过HTTP上传