1 日期与时间

1.1 Date

Date类代表当前所在系统的日期时间信息

public Date() 创建一个Date对象,代表的是系统当前此刻日期时间。

public long getTime() 返回从1970年1月1日 00:00:00走到此刻的总的毫秒数

请计算出当前时间往后走1小时121秒之后的时间是多少。

package Date;
​
import java.util.Date;
​
//使用date处理时间
public class Demo1 {public static void main(String[] args) {Date d = new Date(  );System.out.println( d );
​long time = d.getTime();System.out.println( time);// Sun Nov 13 10:45:08 CST 2022//  1668307508663//请计算出当前时间往后走1小时121秒之后的时间是多少System.out.println("*****************");Date d1 = new Date(  );System.out.println( d1);
​long time1 = System.currentTimeMillis();time1 +=(60*60+121)*1000;
//1Date d2 = new Date( time1 );System.out.println( d2);
//2d.setTime( time1 );System.out.println(d);}
}

1、日期对象如何创建,如何获取时间毫秒值? public Date(); public long getTime(); 2、时间毫秒值怎么恢复成日期对象 public Date(long time); public void setTime(long time);

2.1 SimpleDateFormat

代表简单日期格式化,可以用来把日期时间格式化成为我们想要的形式

package Date;
​
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
​
public class Demo2 {public static void main(String[] args) {Date d = new Date(  );System.out.println( d );//格式化日期对象SimpleDateFormat sdf = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss EEE a" );//开始格式化日期对象String rs = sdf.format( d );System.out.println( rs );//格式化时间毫米值//121秒后时间long time1 = System.currentTimeMillis()+ 121*1000;String rs2 = sdf.format( time1 );System.out.println( rs2 );
​
​
​}
}

格式化方法

格式化方法 说明
public final String format(Date date) 将日期格式化成日期/时间字符串
public final String format(Object time) 将时间毫秒值式化成日期/时间字符串

学会 SimpleDateFormat 解析字符串时间成为日期对象

package Date;
​
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
public class Demo3 {public static void main(String[] args) throws ParseException {//学会 SimpleDateFormat 解析字符串时间成为日期对象//计算2021.8.26.11.11.11 后2.14.49.6时间String dateStr = "2021年08月06日 11:11:11";
​//把字符串解析成日期对象SimpleDateFormat sdf = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss" );Date d = sdf.parse( dateStr );long time = d.getTime() + (2L*24*60*60 +14*60*60+49*60+6)*1000;//加L不会越界System.out.println( sdf.format( time ) );
​
​}
}

1、SimpleDateFormat代表什么,有什么作用? 简单日期格式化对象 可以把日期对象及时间毫秒值格式化成我们想要的字符串形式。 可以把字符串的时间形式解析成Date日期对象。 2、SimpleDateFormat的对象如何创建? public SimpleDateFormat(String pattern) 3、SimpleDateFormat格式化,以及解析时间的方法是怎么样的? public final String format(Date d):格式化日期对象 public final String format(Object time):格式化时间毫秒值 public Date parse(String source):解析字符串时间

需求 某购物网站举办秒杀活动,开始时间和结束时间如左图所示,当前活动结束后,系统记录到2位用户的付款时间分别如下: 小贾下单并付款的时间为:2020年11月11日 0:03:47 小皮下单并付款的时间为:2020年11月11日 0:10:11 规则:顾客的付款时间必须在秒杀时间之内,请判断出两位顾客是否秒杀成功。

package Date;
​
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
public class Test1 {public static void main(String[] args) throws ParseException {
​String startTime = "2021-11-11 00.00.00";String endTime = "2021-11-11 00.10.00";
​String xiaojia ="2021-11-11 00.03.47";String xiaopi ="2021-11-11 00.10.11";
​SimpleDateFormat sdf = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss" );Date d1 = sdf.parse( startTime );Date d2 = sdf.parse( endTime );Date d3 = sdf.parse( xiaojia );Date d4 = sdf.parse( xiaopi );
​if(d3.after(d1) && d3.before( d2 )){System.out.println("小贾成功");}else{System.out.println("小贾失败");}if(d4.after(d1) && d4.before( d2 )){System.out.println("小皮成功");}else{System.out.println("小皮失败");}
​}
}

2.1 Calendar

Calendar代表了系统此刻日期对应的日历对象。 Calendar是一个抽象类,不能直接创建对象。

方法名 说明
public int get(int field) 取日期中的某个字段信息。
public void set(int field,int value) 修改日历的某个字段信息。
public void add(int field,int amount) 为某个字段增加/减少指定的值
public final Date getTime() 拿到此刻日期对象。
public long getTimeInMillis() 拿到此刻时间毫秒值

注意:calendar是可变日期对象,一旦修改后其对象本身表示的时间将产生变化

1、Calendar如何去得到日历对象的?

调用方法 抽象类不能创造对象

public static Calendar getInstance() : 获取当前日历对象package Date;
​
import java.util.Calendar;
import java.util.Date;
​
public class Demo4 {public static void main(String[] args) {//1. 取日期中的某个字段信息。Calendar cal = Calendar.getInstance();System.out.println( cal );
​//2. 修改日历的某个字段信息。int year = cal.get(Calendar.YEAR);System.out.println( year );int month= cal.get(Calendar.MONTH);System.out.println( month );int days = cal.get(Calendar.DAY_OF_YEAR);System.out.println( days );// 3. 为某个字段增加/减少指定的值 一般不修改//  cal.set( Calendar.HOUR,16 );//   System.out.println( cal );//64天后时间cal.add(Calendar.DAY_OF_YEAR,64);
​//4.  拿到此刻日期对象。Date d =  cal.getTime();System.out.println( d );//5. 拿到此刻时间毫秒值long time = cal.getTimeInMillis();System.out.println( time );}
}
//2022
//10
//317
//Mon Jan 16 11:46:33 CST 2023
//1673840793979

2 JDK8新增日期类

JDK8新增日期类

2.1LocalTime /LocalDate / LocalDateTime

方法名 说明
public int geYear() 获取年
public int getMonthValue() 获取月份(1-12)
Public int getDayOfMonth() 获取月中第几天乘法
Public int getDayOfYear() 获取年中第几天
Public DayOfWeek getDayOfWeek() 获取星期

2.2 Instant

Instant时间戳 JDK8获取时间戳特别简单,且功能更丰富。Instant类由一个静态的工厂方法now()可以返回当前时间戳。

Instant instant = Instant.now(); System.out.println("当前时间戳是:" + instant);

Date date = Date.from(instant); System.out.println("当前时间戳是:" + date);

instant = date.toInstant(); System.out.println(instant);

2.3 DateTimeFormatter

在JDK8中,引入了一个全新的日期与时间格式器DateTimeFormatter

2.4 Duration/Period

Period 在Java8中,我们可以使用以下类来计算日期间隔差异:java.time.Period 主要是 Period 类方法 getYears(),getMonths() 和 getDays() 来计算,只能精确到年月日。 用于 LocalDate 之间的比较。

2.5 ChronoUnit

ChronoUnit类可用于在单个时间单位内测量一段时间,这个工具类是最全的了,可以用于比较所有的时间单位

Java 日期常用API相关推荐

  1. 一文告诉你Java日期时间API到底有多烂

    前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...

  2. java8 日期api_我们多么想要新的Java日期/时间API?

    java8 日期api 当前的Java.net 民意测验问题是:" 对于用Java 8实现的JSR-310(新的日期和时间API)有多重要? "在我撰写本文时,将近150位受访者投 ...

  3. 我们多么想要新的Java日期/时间API?

    当前的Java.net 民意测验问题是:" 对于用Java 8实现的JSR-310(新的日期和时间API)有多重要? "在我撰写本文时,将近150位受访者投了赞成票,绝大多数人回答 ...

  4. java中常用API、Scanner类、匿名对象、Random类、ArrayList类、对象数组

    java中常用API: API:Application Programming Interface,应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.这些类将底层的代码实现封装 ...

  5. Java日期时间API

    日期时间API 参考:https://lw900925.github.io/java/java8-newtime-api.html 旧日期时间API System java.lang.System类提 ...

  6. Java 之常用API(一)

    常用API  1 API概述  2 Scanner类与String类  3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...

  7. 【JAVA基础】重新系统学习Java(七)常用API(String、ArrayList)

    目录 常用API(String.ArrayList) String String类概述 创建字符串对象的2种方式 String类常见面试题 String类常用API-字符串内容比较 String类常用 ...

  8. Java —— 日期时间 API

    一.java.util.Date 在 JDK 1.1 之前, Date 有两个附加功能. 它允许将日期解释为年,月,日,小时,分钟和第二个值. 它还允许格式化和解析日期字符串. 不幸的是,这些功能的 ...

  9. java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一

     WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.clic ...

  10. selenium java api_selenium_java常用API操作

    selenium: selenium2(WebDriver) API 1.1 下载selenium2.0的包 官方download包地址:http://code.google.com/p/seleni ...

最新文章

  1. java递归实现数组逆序_Java实现数组全排序(递归)
  2. 仿支付宝/微信的password输入框效果GridPasswordView解析
  3. Python强大的格式化format
  4. html css 表格自动高度,HTML/CSS - 具有固定高度的容器中表格单元格的高度不一致...
  5. ADF:动态视图对象
  6. RabbitMQ六种队列模式-主题模式
  7. 安装mysql 遇到最后一步卡死解决方案
  8. 免杀的艺术:史上最全的汇编Shellcode的技巧(三)
  9. 针式打印机无电脑测试软件,针式打印机断针测试软件合集
  10. React开发者工具 React Developer Tools 的下载
  11. GBIT51233-2016装配式木结构建筑技术标准
  12. 【网站点击流数据分析】01-项目业务背景
  13. 得到本机所有 IP 地址
  14. 大恒相机+VS开发+Qt 跑通示例工程
  15. 腾讯云你的凭证不工作
  16. 音频视频播放无法拖动快进
  17. 《计算机导论》课后习题答案
  18. 绥芬河java_那段岁月
  19. np.title函数作用
  20. 【愚公系列】2022年08月 微信小程序-纵向和横向选项卡功能实现

热门文章

  1. 如何用美剧真正提升你的英语水平(转载)
  2. IM即时通讯/原生APP/H5聊天/在线客服/高仿VX/uniapp版本/视频通话/语音通话/带视频部署教程
  3. 学大数据需要具备四种条件?你具备几种?
  4. 封装jquery的方法
  5. 十一届蓝狐杯的总结,顺带一点解题报告
  6. deprecated注释 原因
  7. Meta研发触觉手套,有人想在元宇宙撸猫,有人产生大胆的想法
  8. 安卓手机格式化怎么弄_一加6/7/7Pro怎么从氢OS安卓10降级安卓9系统-完美降级教程...
  9. python小论文范文3000字_论文范文3000字
  10. java弹弹球实验报告_Java程序设计实验报告2(弹球游戏)1