常用类和集合框架----时间

java.util.Date类

表示特定的时间瞬间,包含年,月,日,时,分,秒,毫秒。

时间日期的格式化和解析

格式化将Date对象转换成字符串。

解析将字符串转换成Date对象。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss.SSS");

// 格式化, Date->String
Date now = new Date();
String str = sdf.format(now);
System.out.println(str);

// 解析
String str1 = "2001年10月24日 23:15:18.123";

try {
	Date date = sdf.parse(str1);

	System.out.println(date);

} catch (ParseException e) {
	e.printStackTrace();
}

 日期和时间的格式化编码
时间模式字符串用来指定时间格式。在此模式中,所有的 ASCII 字母被保留为模式字母,定义如下:

字母    描述    示例
G    纪元标记    AD
y    四位年份    2001
M    月份    July or 07
d    一个月的日期    10
h     A.M./P.M. (1~12)格式小时    12
H    一天中的小时 (0~23)    22
m    分钟数    30
s    秒数    55
S    毫秒数    234
E    星期几    Tuesday
D    一年中的日子    360
F    一个月中第几周的周几    2 (second Wed. in July)
w    一年中第几周    40
W    一个月中第几周    1
a    A.M./P.M. 标记    PM
k    一天中的小时(1~24)    24
K     A.M./P.M. (0~11)格式小时    10
z    时区    Eastern Standard Time

详细请查询(95条消息) Java——日期时间(SimpleDateFormat)_钢铁大侠.的博客-CSDN博客

使用printf格式化日期

import java.util.Date;
 
public class DateDemo {
 
  public static void main(String[] args) {
     // 初始化 Date 对象
     Date date = new Date();
 
     //c的使用  
    System.out.printf("全部日期和时间信息:%tc%n",date);          
    //f的使用  
    System.out.printf("年-月-日格式:%tF%n",date);  
    //d的使用  
    System.out.printf("月/日/年格式:%tD%n",date);  
    //r的使用  
    System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
    //t的使用  
    System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
    //R的使用  
    System.out.printf("HH:MM格式(24时制):%tR",date);  
  }
}

java.util.Calendar类

java.sql.Date类

继承自java.util.Date。为了应对数据库中的Date类型。

只用来表示年月日,不用来表示时分秒。

这是因为数据库中,date类型只用来表示年月日,time类型用来表示时分秒,datetime表示年月日时分秒。

java.sql.Timestamp类

继承自java.util.Date。为了应对数据库中的Date类型。

与数据库中的timestamp类型对应,精确到纳秒。

JDK8新的日期时间类

LocalDate类

表示年月日。

// 当前日期
LocalDate now = LocalDate.now();
// 指定日期
LocalDate date = LocalDate.of(2000, 10, 10);

LocalTime类

表示时分秒,精确到纳秒。

// 当前时间
LocalTime now = LocalTime.now();
// 指定时间,时分秒
LocalTime date = LocalTime.of(20, 10, 10);
// 指定时间,时分秒纳秒
LocalTime date = LocalTime.of(20, 10, 10, 10);

LocalDateTime类

表示年月日,时分秒,精确到纳秒。

// 当前时间
LocalDateTime now = LocalDateTime.now();
// 指定时间
LocalDateTime date = LocalDateTime.of(2000, 10, 10, 10, 10);
// 常用方法 -- 获取时间
date.getYear();         // 获取年份
date.getMonth();        // 获取月份,从0开始
date.getMonthValue();   // 获取月份,从1开始
date.getDayOfMonth();   // 获取一月第几天
date.getDayOfWeek();    // 获取一周第几天
date.getDayOfYear();    // 获取一年第几天
date.getHour();         // 获取时
date.getMinute();       // 获取分
date.getSecond();       // 获取秒
date.getNano();         // 获取纳秒
// 常用设置
date.withYear(2000);      // 设置年份
date.withMonth(3);        // 设置月份,从0开始
date.withDayOfMonth(4);   // 设置一月第几天
date.withDayOfYear(5);    // 设置一年第几天
date.withHour(6);         // 设置时
date.withMinute(7);       // 设置分
date.withSecond(8);       // 设置秒
date.withNano(9);         // 设置纳秒
// 计算
date.minusDays(10); // 减10天
date.plusDays(10);  // 加10天

ZonedDateTime类

表示带有时区的时间。

// 当前时间
ZonedDateTime now = ZonedDateTime.now();
// 指定时间
ZonedDateTime date = ZonedDateTime.of(2000, 10, 10, 10, 10,10, 10, ZoneId.of("Asia/Shanghai"));

DateTimeFormatter类

时间日期格式化器,负责时间日期与字符串之间的相互转换。

// 转换器
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss.SSS");
LocalDateTime now = LocalDateTime.now();
// 时间格式化字符串
System.out.println(now.format(dtf));
// 字符串解析为时间
LocalDateTime date = LocalDateTime.parse("1999年10月10日 10:10:10.100", dtf);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值