JAVA中的日期时间类用法总结
作者:荆棘鸟的天空 发布时间:2023-08-29 08:00:24
标签:java,日期,时间
前言
好记性不如烂笔头,日期时间类那么花哨不如记下来多看两眼。
提示:以下是本篇文章正文内容,下面案例可供参考
一.日期时间类的包
代码如下(示例):
java.util.Date;
java.time.format.DateTimeFormatter;
java.util.Calendar
java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
二.Data类
java.util.Date;
Date类是我们之前常用的一个日期和时间的对象,此类在 java.util 包中,并不是java.sql中的Date
代码如下(示例):
public static void main(String[] args) {
Date a=new Date();
System.out.println(a);//当前时间
Date b=new Date(System.currentTimeMillis());//当前时间
System.out.println(b);//Wed Aug 26 08:26:32 CST 2020
//常用方法:
//年必须加上1900
System.out.println(a.getYear()+1900);
//月0~11 必须加1
System.out.println(a.getMonth()+1);
//日1-31 不用加
System.out.println(a.getDate());
//转换成String
System.out.println(a.toString());//Wed Aug 26 08:26:32 CST 2020
//转换为GNT时区
System.out.println(a.toGMTString());
//转换为本地时区
System.out.println(a.toLocaleString());
}
三.SimpleDateFormat类
java.text.SimpleDateFormat
格式化输出日期,此类提供了一些预定义字符串或者称之为占位符:
yyyy:年
MM:月
dd: 日
HH: 小时
mm: 分钟
ss: 秒
格式化时间:
public static void main(String[] args) {
Date aa=new Date();
SimpleDateFormat aa1=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String str=aa1.format(aa);
System.out.println(str);
f();
}
public static void f() {
Date a=new Date();
DateTimeFormatter w=DateTimeFormatter.ofPattern("yyyy-MM-dd-HH:mm:ss");
String t=w.format(LocalDateTime.now());
System.out.println(t);
}
四. Calendar类 -日历类
java.util.Calendar
日历类Calendar更多的是代表年 月 日 周 星期 上午 下午 夏时令等这样内容,Date用于记录某一个含日期的、精确到毫秒的时间。重点在代表一刹那的时间本身;
常用方法:
Calendar.YEAR:年
Calendar.MONTH:月 需要加1
Calendar.DAY_OF_MONTH:日
Calendar.HOUR:时
Calendar.MINUTE:分
Calendar.SECOND:秒
代码演示:
public static void main(String[] args) {
Calendar a=Calendar.getInstance();
Date b=a.getTime();
System.out.println(b);//当前时间,这样的格式Wed Aug 26 08:44:06 CST 2020
//年
int year=a.get(Calendar.YEAR);
//月
int mon =a.get(Calendar.MONTH)+1;
//日
int day=a.get(Calendar.DATE);
//日
int d=a.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"-"+mon+"-"+day);//2020-8-26
System.out.println(year+"年"+mon+"月"+d+"日");//2020年8月26日
//从今年初到现在过去了多少天:
int t=a.get(Calendar.DAY_OF_YEAR);
System.out.println(t);//从2020年到现在过去了239天
//当前小时数
int shi=a.get(Calendar.HOUR);
System.out.println(shi+"时");//当前是几点
//当前分钟数
int fen=a.get(Calendar.MINUTE);
System.out.println(fen+"分");//当前分钟数;
//当前秒数
int miao =a.get(Calendar.SECOND);
System.out.println(miao+"秒");
System.out.println(year+"年"+mon+"月"+day+"日"+shi+"时"+fen+"分"+miao+"秒");//2020年8月26日8时46分25秒
//格式化输出
Date aa=new Date();
SimpleDateFormat aa1=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
System.out.println(aa1.format(aa));
f2();//从当前时间计算n天后的日期
f3();//比较日期的先后,返回布尔值
}
public static void f2() {
Calendar c3 = Calendar.getInstance();
c3.add(Calendar.DATE,+10);
int year = c3.get(Calendar.YEAR);
int month = c3.get(Calendar.MONTH)+1;
int date = c3.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");//十天后是九月五日
}
public static void f3() {
Calendar c1=Calendar.getInstance();
c1.set(2020,4,12);
Calendar c2=Calendar.getInstance();
c2.set(2020,6,10);
boolean b=c2.after(c1);//前面的与括号内相比较,在前还是在后(返回的是布尔值,true或者false)
System.out.println(b);
}
程序结果:
五.新增时间类
本地日期类:
LoclDate类 - 本地日期类
LocalDate a=LocalDate.now();
本地时间类:
LocalTime类 - 本地时间类
LocalTime time=LocalTime.now();
本地日期时间类:
LocalDateTime类 - 本地日期时间类;
LocalDateTime b=LocalDateTime.now();
常用方法:
代码演示:
public static void main(String[] args) {
f1();
f2();
f3();
f4();
f5();
}
public static void f1() {
LocalDate a=LocalDate.now();//当前日期
LocalTime time=LocalTime.now();//当前时间
LocalDateTime b=LocalDateTime.now();//当前年月日时分秒
System.out.println(a);
System.out.println(time);
System.out.println(b);
}
public static void f2() {
//更规范操作
LocalDateTime a=LocalDateTime.now();//当前年月日时分秒
LocalDate a1=a.toLocalDate();//当前日期
LocalTime a2=a.toLocalTime();//当前时间
System.out.println(a);
System.out.println(a1);
System.out.println(a2);
}
public static void f3() {
LocalDateTime a=LocalDateTime.now();
System.out.println(a.getYear());//输出年
System.out.println(a.getMonth());//月(英文)
System.out.println(a.getMonthValue());//月(中文)
System.out.println(a.getDayOfMonth());//日
System.out.println(a.getDayOfYear());//今年第一天到现在有多少天;
System.out.println(a.getDayOfWeek());//星期
System.out.println(a.getHour());//时
System.out.println(a.getMinute());//分钟
System.out.println(a.getSecond());//秒
}
public static void f4() {
//给定时间并输出
LocalDate a=LocalDate.of(2020,8, 26);
LocalTime b=LocalTime.of(9, 10, 03);
LocalDateTime c=LocalDateTime.of(a, b);
LocalDateTime d=LocalDateTime.of(2020, 8, 26, 9, 10, 03);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
public static void f5() {
//按照指定的格式进行日期时间的输出
Date a=new Date();
DateTimeFormatter w=DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分ss秒");
String t=w.format(LocalDateTime.now());
System.out.println(t);//当前时间
}
来源:https://blog.csdn.net/WYYCDY/article/details/108233262


猜你喜欢
- Transfer-Encoding简介transfer-eccoding所描述的是消息请求(request)和响应(response)所附带
- 学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下myba
- 上篇博客我们了解了请求参数的获取,那么获取到请求参数之后,需要对参数进行出来,然后进行数据响应。那么这篇博客我们就来了解 Controlle
- 1.什么是servlet?sun(oracle)公司制订的一种用来扩展web服务器端功能的组件规范。背景:常用的web服务器:apache
- 本文实例讲述了C#语音识别用法。分享给大家供大家参考。具体分析如下:C#可以利用微软操作系统自动的语音识别功能,读取信息。步骤如下:1.&n
- spring-cloud-config 配置中心实现Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中
- 本文实例讲述了C#编程实现取整和取余的方法。分享给大家供大家参考,具体如下:"%"为取余号,不用多说。 "/&
- Android 自定义view实现动态进度条效果图: 这个是看了梁肖的demo,根据他的思路自己写了一个,但是我写的这个貌似计算
- 目录Java反射超详解1.反射基础1.1Class类1.2类加载2.反射的使用2.1Class对象的获取 2.2Construct
- 本文实例为大家分享了Unity实现物体左右移动效果的具体代码,供大家参考,具体内容如下效果如下代码:using UnityEngine;us
- 本文实例为大家分享了java实现九宫格拼图游戏的具体代码,供大家参考,具体内容如下设计步骤: 先将框架构思出来,首先将拼图游戏的雏
- 简介本文主要讲解java 利用Selenium 操作浏览器网站时候,需要用的js的地方,代码该如何实现。调用JavaScriptwebdri
- 概述透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表。所需工具:Free Spire.XLS f
- 这里使用的是dynamic-datasource-spring-boot-starter ,它是一个基于springboot的快速集成多数据
- 目录一、使用BeanFactoryPostProcessor注入Bean:第一步:创建实现SpringUtils 接口工具(组件)来获取sp
- 1、注解方式,在controller层通过initBinder注解实现@InitBinderpublic void initBinder(H
- 接着上篇文章,我们继续来学习 Java 中的字节流操作。装饰者缓冲流 BufferedInput/OutputStream装饰者流其实是基于
- 从C#3.0开始,可以使用lambda表达式把实现代码赋予委托。lambda表达式与委托(https://www.jb51.net/arti
- 用一个7 x 7的矩形表示迷宫,0和1分别表示的是通路和障碍。通过设计编写程序找到蓝色小球达到蓝色旗子的路线思路:构建一个迷宫(用二维数组)
- DropDownList控件又称下拉列表框控件, 控件 列表 中的多行数 据 以隐含 的形式表 示 出 来,当用户需要选择所需列表项时,通过