当前位置: 首页 > 编程日记 > 正文

Java学习总结:36(日期处理类)

日期处理类

Date类

Date类常用方法

No.方法类型描述
1public Date()构造实例化Date类对象
2public Date(long date)构造将数字变为Date类对象,long为日期时间数据
3public long getTime()普通将当前的日期时间变为long型

例:取得当前的日期时间

package Project.Study.DateClass;import java.util.Date;public class Test1 {public static void main(String[]args){Date date=new Date();		//实例化Date对象System.out.println(date);	//输出对象信息}
}
//结果:
//Wed Apr 01 20:09:49 CST 2020

大家可能都注意到了,上程序输出的日期未格式化处理,看着十分变扭,日期的格式化需要用到SimpleDateFormat类,这个类我们等下会讲到。

例:Date与long间的转换

package Project.Study.DateClass;import java.util.Date;public class Test2 {public static void main(String[]args){long cur=System.currentTimeMillis();	//取得当前日期时间以long型返回Date date=new Date(cur);				//将long型转化为DateSystem.out.println(date);				//输出对象信息System.out.println(date.getTime());}
}
//结果:
//Wed Apr 01 20:16:22 CST 2020
//1585743382666

日期格式化:SimpleDateFormat

No.方法类型描述
1public SimpleDateFormat(String pattern)构造传入日期时间标记实例化对象
2public final String format(Date date)普通将日期格式化为字符串数据
3public Date parse(String source) throws ParseException普通将字符串格式化为日期数据

例:将日期格式化显示(Date型数据变为String型数据)

package Project.Study.SimpleDateFormatClass;import java.text.SimpleDateFormat;
import java.util.Date;public class Test1 {public static void main(String[]args){Date date=new Date();           //实例化Date类对象//实例化SimpleDateFormat类对象,同时定义好要转换的目标字符串格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");String str=sdf.format(date);    //将Date型变为String型System.out.println(str);}
}
//结果:
//2020-04-01 23:57:56.166

注:yyyy-MM-dd HH:mm:ss.SSS分别对应(年-月-日 时:分:秒.毫秒),这些都是常用的时间标记。

例:将字符串转换为日期

package Project.Study.SimpleDateFormatClass;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test2 {public static void main(String[]args) throws ParseException {String str="2020-04-01 23:57:56.166";			//日期字符串//实例化SimpleDateFormat类对象,同时定义好了要转换的字符串格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Date date=sdf.parse(str);						//将字符串变为日期型数据System.out.println(date);}
}
//结果:
//Wed Apr 01 23:57:56 CST 2020

SimpleDateFormat类其实有一个好处就是,它可以自动处理错误的日期时间数,例如:如果设置的月数是15,则自动增加一年,变为3个月。

例:观察SimpleDateFormat的自动纠正

package Project.Study.SimpleDateFormatClass;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test3 {public static void main(String[]args) throws ParseException {String str="2020-15-65 23:57:56.166";	//定义一个错误的日期字符串//实例化SimpleDateFormat类对象,同时定义好了要转换的字符串格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Date date=sdf.parse(str);				//将字符串变为日期型数据System.out.println(date);}
}
//结果:
//Tue May 04 23:57:56 CST 2021

从上程序可以看到,虽然我们定义了一个错误的日期字符串,但SimpleDateFormat类自动进行了进位处理。

Calendar类

Calendar类中定义的常量和方法

No.方法类型描述
1public static final int YEAR常量取得年、int类型
2public static final int MONTH常量取得月、int类型
3public static final int DAY_OF_MONTH常量取得日、int类型
4public static final int HOUR_OF_DAY常量取得小时(24小时制)、int类型
5public static final int MINUTE常量取得分、int类型
6public static final int SECOND常量取得秒、int类型
7public static final int MILLISECOND常量取得毫秒、int类型
8public static Calendar getInstance()普通根据默认的时区实例化对象
9public boolean after(Object when)普通判断一个日期是否在指定日期之后
10public boolean before(Object when)普通判断一个日期是否在指定日期之前
11public int get(int field)普通返回给定日历字段的值

例:取得当前的日期时间

package Project.Study.CalendarClass;import java.util.Calendar;public class Test1 {public static void main(String[]args){Calendar cal=Calendar.getInstance();	//取得本类对象StringBuffer buf=new StringBuffer();	//保存日期数据buf.append(cal.get(Calendar.YEAR)).append("-");			//取得年数据buf.append(cal.get(Calendar.MONTH)+1).append("-");		//取得月数据,从0开始buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");	//取得天数据buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");	//取得小时数据buf.append(cal.get(Calendar.MINUTE)).append(":");		//取得分钟数据buf.append(cal.get(Calendar.SECOND));					//取得秒数据System.out.println(buf);}
}
//结果:
//2020-4-2 1:11:34

由上程序我们可以发现,Calendar类取得的内容不会前导0,即如果当前月份是4月,那么返回的不是“04”,而是“4”。

注意:由于Calendar类的月是从0开始的,所以每一次在进行月份计算的时候都需要执行一个“+1”操作。

Calendar类还可以进行简单的日期计算
例:取得五天后的日期

package Project.Study.CalendarClass;import java.util.Calendar;public class Test2 {public static void main(String[]args){Calendar cal=Calendar.getInstance();StringBuffer buf=new StringBuffer();buf.append(cal.get(Calendar.YEAR)).append("-");buf.append(cal.get(Calendar.MONTH)+1).append("-");buf.append(cal.get(Calendar.DAY_OF_MONTH)+5).append(" ");buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");buf.append(cal.get(Calendar.MINUTE)).append(":");buf.append(cal.get(Calendar.SECOND));System.out.println(buf);}
}
//结果:
//2020-4-7 1:21:56

注意:Calendar类并没有SimpleDateFormat类的自动进位功能。
例:错误示范

package Project.Study.CalendarClass;import java.util.Calendar;public class Test2 {public static void main(String[]args){Calendar cal=Calendar.getInstance();StringBuffer buf=new StringBuffer();buf.append(cal.get(Calendar.YEAR)).append("-");buf.append(cal.get(Calendar.MONTH)+1).append("-");buf.append(cal.get(Calendar.DAY_OF_MONTH)+33).append(" ");buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");buf.append(cal.get(Calendar.MINUTE)).append(":");buf.append(cal.get(Calendar.SECOND));System.out.println(buf);}
}
//结果:
//2020-4-35 1:30:11(一个月不会有35天的...)

相关文章:

最强的篮球队和马尔可夫模型

打篮球经常遇到这种情况,11个人,分4、4、3共三套,一群人少时间玩,在一个失败的团队的人下阵来填补空缺。因此,我认为,,会不会出现一个最强组合,使得这4个人一直赢比赛呢?…

1677: [Usaco2005 Jan]Sumsets 求和

1677: [Usaco2005 Jan]Sumsets 求和 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 626 Solved: 348[Submit][Status]Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that ar…

通过CPAN安装Perl模块

第一步,进入CPAN shell: sudo perl -MCPAN -e shell 第一次运行会问你一些问题,一般来说缺省答案就好 第二步,执行安装程序,例如安装LWP:UserAgent cpan>install LWP:UserAgent 还有一个二合一的命令,效…

Python3和Raspberry Pi最全面最直接的课程

在一门课程中学习Python 3基础知识、高级Python、科学Python、Raspberry Pi、硬件和物联网项目 教程获取:Python3和Raspberry Pi最全面最直接的课程 – 云桥网络-CG技术学习平台 你会学到: Python 3基础 Python 3高级概念 Raspberry Pi的设置和使用 Scientific Py…

Java学习总结:37(比较器)

比较器 Arrays类 No.方法类型描述1public static boolean equals(int [] a,int [] a2)普通判断两个数组是否相等,此方法被重载多次,可以判断各种数据类型的数组2public static void fill(int [] a,int val)普通将指定内容填充到数组中,此方…

探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制

http://407711169.blog.51cto.com/6616996/1203973/转载于:https://www.cnblogs.com/zengkefu/p/5042351.html

文字转语音(jacob)

近期项目中出现在离线情况下文字转语音的需求 经过尝试发现jacob还不错 注&#xff1a;只适用于windows系统环境 以下为开发记录&#xff1a; 1.pom.xml中引入jacob.jar <dependency><groupId>com.hynnet</groupId><artifactId>jacob</artifactId&…

log4j配置说明

2019独角兽企业重金招聘Python工程师标准>>> 一.参数意义说明 输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告&#xff0c;比如session丢失 INFO 为一般要显示的信息&#xff0c;比如登录登出 DEBUG 为程序的调试信息…

Python 无法安装PyAudio问题

一、错误与原因 在Windows上没有用于Python 3.7的轮子&#xff08;预构建包&#xff09;&#xff08;有一个用于Python 2.7和3.4到3.6&#xff09;&#xff0c;因此需要在PC上准备构建环境以使用此包。因为有些软件包很难在Windows上构建&#xff0c;所以找到3.7的轮子更容易一…

7-4 水仙花数

7-4 水仙花数 水仙花数是指一个N位正整数&#xff08;N≥3&#xff09;&#xff0c;它的每个位上的数字的N次幂之和等于它本身。例如&#xff1a;153135333。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N&#xff08;3≤N≤7&#xff09;。…

Unreal Engine4 可视化虚拟现实全流程学习教程

课程目标&#xff1a; 这是一套专门为设计院&#xff0c;三维动画公司、效果图公司、景观规划公司、以及有志于进入这些行业创业的公司和人们量身定制的一套虚拟漫游高级教材。 在这套教学里面&#xff0c;我们能够从头开始了解到一个效果图级别的虚拟漫游是怎么制作出来的&…

用python的numpy作线性拟合、多项式拟合、对数拟合

转自&#xff1a;http://blog.itpub.net/12199764/viewspace-1743145/ 项目中有涉及趋势预测的工作&#xff0c;整理一下这3种拟合方法&#xff1a;1、线性拟合-使用mathimport mathdef linefit(x , y): N float(len(x)) sx,sy,sxx,syy,sxy0,0,0,0,0 for i in range(…

Java中的简单工厂模式(转)

Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式&#xff1a;女娲抟土造人话说&#xff1a;“天地开辟&#xff0c;未有人民&#xff0c;女娲抟土为人。”女娲需要用土造出一个个的人&#xff0c;但在女娲造出人之前&#xff0c;人的概念只存在于女娲的思想里面…

Math.toRadians()与 Math.toDegrees()方法介绍

strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。因此如果你想让你的浮点运算更加精确, 而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.

Linux命令基础6-mkdir命令

mkdir是英文单词make directory的缩写。mkdir就是用来创建路径&#xff0c;一般就是用来创建文件夹的。 语法 mkdir (选项)(参数) 选项 -Z&#xff1a;设置安全上下文&#xff0c;当使用SELinux时有效&#xff1b; -m<目标属性>或--mode<目标属性>建立目录的同时设…

原子性,可见性,有序性详解及DCL单例模式两次校验的目的(拓展懒汉式,饿汉式)

进入以后进行第二次判断,是因为,对于首个拿锁者,它的时段instance肯定为null,那么进入new Singleton()对象创建,而在首个拿锁者的创建对象期间,可能有其他线程同步调用getInstance(),那么它们也会通过if进入到同步块试图拿锁然后阻塞。如果能够保证2,3的顺序那么就不会存在安全问题,但是实际因为JIT和处理器会对代码进行优化重排序,那么可能会2,3的顺序颠倒,那么就有可能会出现一个线程拿到了一个未被初始完成的对象,从而引发安全问题。,那么在这种情况下,会出现多个实例对象。

3ds Max中的V-Ray学习

时长3h 30m 大小解压后&#xff1a;2.73G 包含项目文件 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 3ds Max中的V-Ray简介:官方V-Ray导师 云桥网络 获取课程&#xff1a;3ds Max中的V-Ray学习 Introduction To V-Ray in 3…

7-5 二分法求多项式单根 (20分)

二分法求函数根的原理为&#xff1a;如果连续函数f(x)在区间[a,b]的两个端点取值异号&#xff0c;即f(a)f(b)<0&#xff0c;则它在这个区间内至少存在1个根r&#xff0c;即f( r )0。 二分法的步骤为&#xff1a; 检查区间长度&#xff0c;如果小于给定阈值&#xff0c;则停…

JAVA的instanceOf什么时候用

我个人理解的一个应用场合就是&#xff0c;当你拿到一个对象的引用时&#xff08;例如参数&#xff09;&#xff0c;你可能需要判断这个引用真正指向的类。所以你需要从该类继承树的最底层开始&#xff0c;使用instanceof操作符判断&#xff0c;第一个结果为true的类即为引用真…

解决谷歌浏览器在非https下限制获取多媒体对象(音视频)的解决方式

1、浏览器输入&#xff1a;chrome://flags/ 2、输入你要允许的域名地址或ip端口地址&#xff08;如下图&#xff09;

After Effects CS4 期末考试卷

AECS4考试A卷转载于:https://blog.51cto.com/hnxdd/1593985

数据图表之圆柱图

需求是这样的&#xff0c;需要一个圆柱实现展示内存的占用变化。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.column{position: relative;width: 300px;height:…

虚幻引擎5–环境设计学习教程

时长:1h 12m |视频:. MP4 1280720&#xff0c;30 fps(r) |音频:AAC&#xff0c;48000 Hz&#xff0c;2ch |大小解压后:1.08G 含课程文件 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 在这节课中&#xff0c;你将学习如何在虚幻引擎5中从…

Java学习总结:38(正则表达式)

正则表达式 正则表达式本质上是一种字符串操作语法规则&#xff0c;利用它我们能更加灵活地实现字符串的匹配、拆分、替换等操作。 正则标记 所有的正则表达式支持的类都定义在java.util.regex包里面。这个包里面定义了如下两个主要的类&#xff1a; 1.Pattern类&#xff1a…

PHP Multipart/form-data remote dos Vulnerability

catalog 1. Description 2. Analysis 1. Description PHP is vulnerable to a remote denial of service, caused by repeatedly allocate memory、concatenate string、copy string and free memory when PHP parses header areas of body part of HTTP request with multipar…

HTTP的KeepAlive是开启还是关闭?

转自&#xff1a;http://blog.csdn.net/gaogaoshan/article/details/38580013 1、KeepAlive的概念与优势 HTTP的KeepAlive就是浏览器和服务端之间保持长连接&#xff0c;这个连接是可以复用的。当客户端发送一次请求&#xff0c;收到相应内容后&#xff0c;这个连接会保持一段时…

MyBatis中jdbcType=INTEGER、VARCHAR作用

Mapper.xml中 pid #{pid,jdbcTypeINTEGER} pid #{pid} 都可以用 Mybatis中什么时候应该声明jdbcType&#xff1f; 当Mybatis不能自动识别你传入对象的类型时。 什么情况下&#xff0c;Mybatis不能自动识别我的传入类型&#xff1f; 例如&#xff1a;当你传入空值的时候。&…

我让老师失去了孩子

我永远也忘不了我的初中班主任是被我们班气得流产的。她教我们历史&#xff0c;中考前那段日子&#xff0c;由于学业紧张&#xff0c;学校又没特殊安排&#xff0c;她天天挺着大肚子给我们讲课&#xff0c;只有偶尔请假离开去医院检检查。我们班成绩不好&#xff0c;学习气氛差…

3D场景高级合成技术学习

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch |语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|时长:3h 47m |大小解压后:3.61 GB 含课程文件 创建和渲染三维场景是一项艰巨的任务。但是当你需要在渲染…

Java学习总结:39(反射机制)

反射机制 JAVA中反射是动态获取信息以及动态调用对象方法的一种反射机制。 Java反射就是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff1b;并且能改变它…