时间处理相关类

在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。

时间相关类有如下

Date时间类(java.util.Date)

在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。

  1. Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒)。
  2. Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
  3. boolean after(Date when) 测试此日期是否在指定日期之后。
  4. booleanbefore(Date when) 测试此日期是否在指定日期之前。
  5. boolean equals(Object obj) 比较两个日期的相等性。
  6. long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
  7. String toString() 把此 Date 对象转换为以下形式的 String:

​ dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun、 Mon、Tue、Wed、 Thu、 Fri、 Sat)。

Date类的使用

import java.util.Date;
public class TestDate {public static void main(String[] args) {Date date1 = new Date();System.out.println(date1.toString());long i = date1.getTime();Date date2 = new Date(i - 1000);Date date3 = new Date(i + 1000);System.out.println(date1.after(date2));System.out.println(date1.before(date2));System.out.println(date1.equals(date2));System.out.println(date1.after(date3));System.out.println(date1.before(date3));System.out.println(date1.equals(date3));System.out.println(new Date(1000L * 60 * 60 * 24 * 365 * 39L).toString());}
}

JDK1.1之前的Date包含了:日期操作、字符串转化成时间对象等操作。JDK1.1之后,日期操作一般使用Calendar类,而字符串的转化使用DateFormat类。

DateFormat类和SimpleDateFormat类

DateFormat类的作用

把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。

DateFormat是一个抽象类,一般使用它的的子类SimpleDateFormat类来实现。

DateFormat类和SimpleDateFormat类的使用

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDateFormat {public static void main(String[] args) throws ParseException {// new出SimpleDateFormat对象SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-dd");// 将时间对象转换成字符串String daytime = s1.format(new Date());System.out.println(daytime);System.out.println(s2.format(new Date()));System.out.println(new SimpleDateFormat("hh:mm:ss").format(new Date()));// 将符合指定格式的字符串转成成时间对象.字符串格式需要和指定格式一致。String time = "2007-10-7";Date date = s2.parse(time);System.out.println("date1: " + date);time = "2007-10-7 20:15:30";date = s1.parse(time);System.out.println("date2: " + date);}
}

Calendar日历类

Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。

GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。

​ 注意月份的表示,一月是0,二月是1,以此类推,12月是11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份:JANUARY、FEBRUARY等等。

GregorianCalendar类和Calendar类的使用

import java.util.*;
public class TestCalendar {public static void main(String[] args) {// 得到相关日期元素GregorianCalendar calendar = new GregorianCalendar(2999, 10, 9, 22, 10, 50);int year = calendar.get(Calendar.YEAR); // 打印:1999int month = calendar.get(Calendar.MONTH); // 打印:10int day = calendar.get(Calendar.DAY_OF_MONTH); // 打印:9int day2 = calendar.get(Calendar.DATE); // 打印:9// 日:Calendar.DATE和Calendar.DAY_OF_MONTH同义int date = calendar.get(Calendar.DAY_OF_WEEK); // 打印:3// 星期几 这里是:1-7.周日是1,周一是2,。。。周六是7System.out.println(year);System.out.println(month);System.out.println(day);System.out.println(day2);System.out.println(date);// 设置日期GregorianCalendar calendar2 = new GregorianCalendar();calendar2.set(Calendar.YEAR, 2999);calendar2.set(Calendar.MONTH, Calendar.FEBRUARY); // 月份数:0-11calendar2.set(Calendar.DATE, 3);calendar2.set(Calendar.HOUR_OF_DAY, 10);calendar2.set(Calendar.MINUTE, 20);calendar2.set(Calendar.SECOND, 23);printCalendar(calendar2);// 日期计算GregorianCalendar calendar3 = new GregorianCalendar(2999, 10, 9, 22, 10, 50);calendar3.add(Calendar.MONTH, -7); // 月份减7calendar3.add(Calendar.DATE, 7); // 增加7天printCalendar(calendar3);// 日历对象和时间对象转化Date d = calendar3.getTime();GregorianCalendar calendar4 = new GregorianCalendar();calendar4.setTime(new Date());long g = System.currentTimeMillis();}static void printCalendar(Calendar calendar) {int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1;int day = calendar.get(Calendar.DAY_OF_MONTH);int date = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期几String week = "" + ((date == 0) ? "日" : date);int hour = calendar.get(Calendar.HOUR);int minute = calendar.get(Calendar.MINUTE);int second = calendar.get(Calendar.SECOND);System.out.printf("%d年%d月%d日,星期%s %d:%d:%dn", year, month, day,  week, hour, minute, second);}
}

可视化日历的编写

import java.text.ParseException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class TestCalendar2 {public static void main(String[] args) throws ParseException {System.out.println("请输入日期(格式为:2010-3-3):");Scanner scanner = new Scanner(System.in);String dateString = scanner.nextLine(); // 2010-3-1// 将输入的字符串转化成日期类System.out.println("您刚刚输入的日期是:" + dateString);String[] str = dateString.split("-");int year = Integer.parseInt(str[0]);int month = new Integer(str[1]);int day = new Integer(str[2]);Calendar c = new GregorianCalendar(year, month - 1, day); // Month:0-11// 大家自己补充另一种方式:将字符串通过SImpleDateFormat转化成Date对象,//再将Date对象转化成日期类// SimpleDateFormat sdfDateFormat = new SimpleDateFormat("yyyy-MM-dd");// Date date = sdfDateFormat.parse(dateString);// Calendar c = new GregorianCalendar();// c.setTime(date);// int day = c.get(Calendar.DATE);c.set(Calendar.DATE, 1);int dow = c.get(Calendar.DAY_OF_WEEK); // week:1-7 日一二三四五六System.out.println("日t一t二t三t四t五t六");for (int i = 0; i < dow - 1; i++) {System.out.print("t");}int maxDate = c.getActualMaximum(Calendar.DATE);// System.out.println("maxDate:"+maxDate);for (int i = 1; i <= maxDate; i++) {StringBuilder sBuilder = new StringBuilder();if (c.get(Calendar.DATE) == day) {sBuilder.append(c.get(Calendar.DATE) + "*t");} else {sBuilder.append(c.get(Calendar.DATE) + "t");}System.out.print(sBuilder);// System.out.print(c.get(Calendar.DATE)+//                ((c.get(Calendar.DATE)==day)?"*":"")+"t");if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {System.out.print("n");}c.add(Calendar.DATE, 1);}}
}

calendar当前时间整点_时间处理相关类相关推荐

  1. 数学建模时间序列分析_时间序列分析建模验证

    数学建模时间序列分析 时间序列预测 (Time Series Forecasting) 背景 (Background) This article is the fourth in the series ...

  2. vue怎么截取时间年月_时间格式的转化 vue与js 年月日 时分秒

    首先使用原生转化的方法 第一种 //时间转换 dateStr(d, sign) { //如果没有传递符号,给一个默认的符号 if (!sign) { sign = '-' } //获取d里面年月日时分 ...

  3. 打印当前时间 毫秒_时间轮定时器

    时间轮算法(Timing-Wheel)很早出现在linux kernel 2.6中.因效率非常高,很多应用框架都实现了这个算法.还有些定时器使用最小堆实现,但总体来说,时间轮算法在插入性能上更高. 前 ...

  4. mysql获取时间_时间类型_时间格式化

    为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR.DATE.TIME.DATETIME和TIMESTAMP.如下表列举了这些MySQL中日期和时间数据类型所对 ...

  5. pwm一个时间单位_时间的换算单位是怎么换算的啊,秒,毫秒,微妙,纳秒等

    展开全部 常见时间单位换算: 1秒=1000毫秒(ms) 1秒=1,000,000 微秒62616964757a686964616fe58685e5aeb931333366303836(μs) 1秒= ...

  6. 人生时间计算器_时间计算器

    匿名用户 1级 2010-07-14 回答 展开全部 将下面代码复制到txt文件中,并将其保存为Form1.frm,然后运行 但是要注意:填入的时间不能隔日,即开始时间与结束时间都必须在同一天. VE ...

  7. Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类

    时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...

  8. mysql 时间国际化_日期时间处理和国际化相关

    日期/时间的国际化,不仅涉及到地理位置(Locale,比如星期.月份等日历本地化表示),还涉及到时区(TimeZone,针对UTC/GMT的偏移量).时区不仅是地理位置规定,更是政治规定,比如中国从地 ...

  9. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

最新文章

  1. CSS三角形如何工作?
  2. 第一章 动态规划【未完结】
  3. 芯片业巨震!英特尔拟90亿美元卖掉NAND闪存业务
  4. JavaScript异步编程之事件
  5. Spring MVC中基于自定义Editor的表单数据处理技巧
  6. 泰勒公式的展开细节解析、本质、联想与思考
  7. python整数因式分解
  8. 使用aspose进行将word转换为图片格式
  9. “DAO”是什么?从Web发展详细解析什么是DAO
  10. 微信小程序通过BLE低功耗蓝牙向USB HID键盘设备输出汉字(内含GBK编码转汉字)
  11. 【ITool】excel导入导出工具
  12. heading pitch bank
  13. NFV与SDN的区别与联系
  14. slack 使用说明_使用Reacji自动将Slack消息移至其他渠道
  15. 论文阅读 (64):Weakly-supervised Video Anomaly Detection with Robust Temporal Feature Magnitude Learning
  16. 儿童节html5小游戏,适合儿童节活动上玩的亲子互动小游戏
  17. 惠普笔记本禁用触屏功能
  18. 如何问一个人做什么工作_只是让你的人做他们的工作
  19. python 视频抽帧_FFmpeg视频抽帧那些事
  20. 基于javascript的div浮动效果代码

热门文章

  1. 阻抗匹配工具_工具 | 9R Fret Polishing Wheels 品丝抛光轮
  2. ps修改dds贴图_「干货」喜爱3D游戏动漫建模的你,必备的次世代游戏贴图技巧...
  3. git服务器安装位置,Linux服务器安装gitlabe-runner,并部署包到指定目录,还有踩的一些坑~~...
  4. wk一sm5时间温度控制器_新能源汽车电机控制器温度计算及其模型—DC电容篇
  5. 低代码平台如何一步步摧毁开发团队的效率与创新!
  6. 皮一皮:这就是我的开发水平...
  7. 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
  8. 玩转spring mvc入参自定义类型转换和格式化
  9. Spring Boot 配置文件中的花样,看这一篇足矣!
  10. Spring 中策略模式的 2 个经典应用