【5】java之日期处理类
一、Date 类
在 Java 里提供有一个 java.util.Date 类,可以直接获取当前的日期时间。
范例:获取当前的日期时间
public class TestDemo {
public static void main(String args[]) {
Date date = new Date();
System.out.println(date);
}
}
Date 类定义了如下几个重要方法:
1.1 无参构造:public Date()
1.2 有参构造:public Date(long date)
将 long 型转换成 Date型,同样的就有Date装换成 long;
1.3 Date转换为long:public long getTime()
//时间戳
范例:Date 与 long 间的转换
public class TestDemo {
public static void main(String args[]) {
long cur = System.currentTimeMillis();
// long 转 Date
Date date = new Date(cur);
System.out.println("Date 类型日期:" + date);
// Date 转 long
System.out.println("long 类型日期:" + date.getTime());
}
}
二、String 和 Date 转换
java.text 是一个专门实现国际化程序的开发包,java.text.SimpleDateFormat 类是一个专门处理格式的类,将 Date 型的对象转换为 String 型的形式显示。主要使用的是以下方法:
2.1 构造方法
public SimpleDateFormat(String pattern) // 需要传递转换格式
2.2 将 Date 转换为 String
public final String format(Date date)
2.3 将 String 转换为 Date
public Date parse(String source) throws ParseException
2.4 常见的用String 表示日期的格式
现在关键就在于转换格式上,常见的转换单位:年(yyyy)月(MM)日(dd)时(HH)分(mm)秒(ss)毫秒(SSS)。
范例:将日期格式化显示(将 Date变成 String)
public class TestDemo {
public static void main(String args[]) throws ParseException {
Date date = new Date();
System.out.println(date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
// Date 转 String
String sDate = sdf.format(date);
System.out.println(sDate);
String birthday = "1995-01-11 20:22:34.342";
// String 转 Date
date = sdf.parse(birthday);
System.out.println(date);
}
}
注意,在将字符串转换为Date类时,如果日期给出的月不对,那么会自动进行进位;如果与转换的格式不符合,那么就会出现异常。
三、Calendar 类
Date 类 和 SimpleDateFormat 类两个往往是一起使用的,Calendar 这个类往往是进行一些简单计算。
范例:取得当前的日期时间
Calendar 提供了一个方法:int get(int field),该方法可以获取指定时间分量所对应的值
public class TestDemo {
public static void main(String args[]) throws ParseException {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 月份从0开始
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + month + "-" + day);
}
}
如果是日期计算,Calendar 要比 Date 省事。如果要使用Date 进行天的计算,需要使用 long 完成了。
四、总结
日期型使用 java.util.Date 表示;
Date 与 String 类直接的转换依靠的是 SimpleDateFormat 里 format() 和 parse() 方法;
String 与 基本类型之间的转换依靠的是 包装类 与 String.valueOf() 方法;
long 与 Date 转换依靠的是 Date 类提供的构造以及 getTime() 方法。
【5】java之日期处理类的更多相关文章
- JAVA 8 日期工具类
JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...
- 菜鸡的Java笔记 日期操作类
日期操作类 Date 类与 long 数据类型的转换 SimpleDateFormat 类的使用 Calendar 类的使用 如 ...
- Java案例——日期工具类
需求:定义一个日期工具类,包含两个方法,按日期转化成指定格式的字符串,把字符串解析为指定格式的日期 然后定义一个测试类测试 分析: 1.定义一个日期工具类 2.定义一个方法dateToString,用 ...
- java DateTimeUtil 日期工具类
package com.sicdt.library.core.utils; import java.sql.Timestamp; import java.text.DateFormat; import ...
- Java 之 日期时间类
一.Date类 1.概述 java.util.Date 类 表示特定的瞬间,精确到毫秒. 2.构造方法 public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒) p ...
- Java的日期工具类
package com.tech.jin.util; import java.text.DateFormat; import java.text.ParseException; import java ...
- Java对日期Date类进行加减运算,年份加减,月份加减
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Da ...
- JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。
/** * * 文 件 名: AccountDate.java * * 创建时间: 2008-11-18 * * Email : **@163.com */ import java.text.Deci ...
- Java对日期Date类进行日期加减运算,年份加减,月份加减
package com.cy; import java.security.InvalidParameterException; import java.text.ParseException; imp ...
- 【转】Java对日期Date类进行加减运算,年份加减,月份加减
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Date ...
随机推荐
- 网络监测工具之Zabbix的搭建与测试方法(二)-- SNMP、OID和MIB概述
概念 SNMP是专门设计用于在 IP 网络管理网络节点的一种标准协议,它是一种应用层协议.SNMP使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长.通过SNMP接收随机消息(及事件报告 ...
- [python] 基于matplotlib实现树形图的绘制
树形图Tree diagram (代码下载) 本文旨在描述如何使用Python实现基本的树形图.要实现这样的树形图,首先需要有一个数值矩阵.每一行代表一个实体(这里是一辆汽车).每列都是描述汽车的变量 ...
- python之路56 dajngo最后一天 csrf跨站请求 auth模块登录注册方法
csrf跨站请求伪造 钓鱼网站:模仿一个正规的网站 让用户在该网站上做操作 但是操作的结果会影响到用户正常的网站账户 但是其中有一些猫腻 eg:英语四六级考试需要网上先缴费 但是你会发现卡里的钱扣了但 ...
- 通过Sqoop来传输mysql/oracle/vertica数据至Hive
1.环境: CDH SQOOP2 2.操作步骤 1.准备表与主键 表名:test.test_log 主键:sys_log_id 建表语句 CREATE TABLE hbase_test_test_lo ...
- MySQL 留存率和复购率的场景分析
实际工作中常见的业务场景是求次日留存率,还有一些会对次日留存率增加限制,例如求新用户的次日留存率或者求活跃用户留存率.另外,留存率和复购率看起来都是统计重复出现的概率,但实际求解方法是不一样的. [场 ...
- Unreal学习笔记2-绘制简单三角形
目录 1. 概述 2. 详论 2.1. 代码实现 2.2. 解析:Component 2.3. 解析:材质 2.4. 解析:包围盒 2.5. 解析:Section 3. 其他 4. 参考 1. 概述 ...
- 基于AS2协议的EDI 系统
一款由JAVA语言开发的基于AS2 协议的EDI 轻量级系统 优点如下: 1.价格便宜.目前市场上一条gateway线路动辄数万,甚至数万/年. 2.功能强大.功能可以与主流EDI 软件媲美. 3.可 ...
- ChatGPT:好家伙,每个人内心的一块魔镜
这几天最火的话题就是ChatGPT,人人都在聊,人人都在社交圈或者vlog里面分享使用ChatGPT的聊天截图. 众生有众生相,每个人对这个AI工具有不同的感受和反应.我个人是非常接受ChatGPT, ...
- Nginx 安装perl
1 安装包下载 https://www.cpan.org/src获取最新偶数版本下载链接并替换(偶数版本为稳定版) 2 上传到服务器解压 tar -zxvf perl-5.36.0.tar.gz 3 ...
- spring in action day07 RabbitMq
一:安装RabbitMq 记录下本人在win10环境下安装RabbitMQ的步骤,以作备忘. 第一步:下载并安装erlang erlang和rabbitmq对应版本说明:https://www.rab ...