Java 日期常用API
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相关推荐
- 一文告诉你Java日期时间API到底有多烂
前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...
- java8 日期api_我们多么想要新的Java日期/时间API?
java8 日期api 当前的Java.net 民意测验问题是:" 对于用Java 8实现的JSR-310(新的日期和时间API)有多重要? "在我撰写本文时,将近150位受访者投 ...
- 我们多么想要新的Java日期/时间API?
当前的Java.net 民意测验问题是:" 对于用Java 8实现的JSR-310(新的日期和时间API)有多重要? "在我撰写本文时,将近150位受访者投了赞成票,绝大多数人回答 ...
- java中常用API、Scanner类、匿名对象、Random类、ArrayList类、对象数组
java中常用API: API:Application Programming Interface,应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.这些类将底层的代码实现封装 ...
- Java日期时间API
日期时间API 参考:https://lw900925.github.io/java/java8-newtime-api.html 旧日期时间API System java.lang.System类提 ...
- Java 之常用API(一)
常用API 1 API概述 2 Scanner类与String类 3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...
- 【JAVA基础】重新系统学习Java(七)常用API(String、ArrayList)
目录 常用API(String.ArrayList) String String类概述 创建字符串对象的2种方式 String类常见面试题 String类常用API-字符串内容比较 String类常用 ...
- Java —— 日期时间 API
一.java.util.Date 在 JDK 1.1 之前, Date 有两个附加功能. 它允许将日期解释为年,月,日,小时,分钟和第二个值. 它还允许格式化和解析日期字符串. 不幸的是,这些功能的 ...
- java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一
WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.clic ...
- selenium java api_selenium_java常用API操作
selenium: selenium2(WebDriver) API 1.1 下载selenium2.0的包 官方download包地址:http://code.google.com/p/seleni ...
最新文章
- java递归实现数组逆序_Java实现数组全排序(递归)
- 仿支付宝/微信的password输入框效果GridPasswordView解析
- Python强大的格式化format
- html css 表格自动高度,HTML/CSS - 具有固定高度的容器中表格单元格的高度不一致...
- ADF:动态视图对象
- RabbitMQ六种队列模式-主题模式
- 安装mysql 遇到最后一步卡死解决方案
- 免杀的艺术:史上最全的汇编Shellcode的技巧(三)
- 针式打印机无电脑测试软件,针式打印机断针测试软件合集
- React开发者工具 React Developer Tools 的下载
- GBIT51233-2016装配式木结构建筑技术标准
- 【网站点击流数据分析】01-项目业务背景
- 得到本机所有 IP 地址
- 大恒相机+VS开发+Qt 跑通示例工程
- 腾讯云你的凭证不工作
- 音频视频播放无法拖动快进
- 《计算机导论》课后习题答案
- 绥芬河java_那段岁月
- np.title函数作用
- 【愚公系列】2022年08月 微信小程序-纵向和横向选项卡功能实现
热门文章
- 如何用美剧真正提升你的英语水平(转载)
- IM即时通讯/原生APP/H5聊天/在线客服/高仿VX/uniapp版本/视频通话/语音通话/带视频部署教程
- 学大数据需要具备四种条件?你具备几种?
- 封装jquery的方法
- 十一届蓝狐杯的总结,顺带一点解题报告
- deprecated注释 原因
- Meta研发触觉手套,有人想在元宇宙撸猫,有人产生大胆的想法
- 安卓手机格式化怎么弄_一加6/7/7Pro怎么从氢OS安卓10降级安卓9系统-完美降级教程...
- python小论文范文3000字_论文范文3000字
- java弹弹球实验报告_Java程序设计实验报告2(弹球游戏)1