行业资讯 2025年08月6日
0 收藏 0 点赞 251 浏览 2892 个字
摘要 :

文章目录 1.将日期格式化为字符串 2.将字符串解析为日期 3.获取当前日期和时间 4. 转换Date和Calendar 4.1. 将Calendar转换为Date 4.2. 将Date转换为Calendar 5. 比较……




  • 1.将日期格式化为字符串
  • 2.将字符串解析为日期
  • 3.获取当前日期和时间
  • 4. 转换Date和Calendar
    • 4.1. 将Calendar转换为Date
    • 4.2. 将Date转换为Calendar
  • 5. 比较两个日期
  • 6. 提取年、月和日

学习如何使用java.util.Date类创建新的日期、获取当前日期、将日期解析为字符串或格式化Date对象。这些用例经常需要使用,在一个地方了解它们将有助于为我们许多人节省时间。

值得注意的是,Date实例没有与之关联的时区信息。Date实例表示自Epoch以来的毫秒数。如果我们打印Date实例,它始终打印机器的默认或本地时区。因此,在Date.toString()方法中打印的时区信息不应误导您。

1.将日期格式化为字符串

使用SimpleDateFormat.format()将日期格式化为字符串的Java程序。请注意,SimpleDateFormat不是线程安全的类,因此不应将其实例共享给多个线程。

SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");

String date = sdf.format(new Date());

请参考SimpleDateFormat的Java文档以获取详细的日期和时间模式。以下是您可以使用的最常见日期和时间模式字母及其含义列表:

  • y: 年份(yy或yyyy)
  • M: 月份(MM)
  • d: 月份中的日期(dd)
  • h: 小时(1-12)(hh)
  • H: 小时(0-23)(HH)
  • m: 小时中的分钟(mm)
  • s: 秒(ss)
  • S: 毫秒(SSS)
  • z: 时区文本(例如,太平洋标准时间…)
  • Z: 时区,时间偏移(例如,-0800)
格式 示例
yyyy-MM-dd (ISO) “2018-07-14”
dd-MMM-yyyy “14-Jul-2018”
dd/MM/yyyy “14/07/2018”
E, MMM dd yyyy “Sat, Jul 14 2018”
h:mm a “12:08 PM”
EEEE, MMM dd, yyyy HH:mm:ss a “Saturday, Jul 14, 2018 14:31:06 PM”
yyyy-MM-dd\'T\'HH:mm:ssZ “2018-07-14T14:31:30+0530”
hh \'o\'\'clock\' a, zzzz “12 o’clock PM, Pacific Daylight Time”
K:mm a, z “0:08 PM, PDT”

2.将字符串解析为日期

Java程序示例,使用SimpleDateFormat.parse()方法将字符串解析为Date实例。

SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");

String dateInString = \"2023-09-08 10:20:56\";

Date date = sdf.parse(dateInString);

3.获取当前日期和时间

java.util.Date类表示自纪元以来经过的日期和时间。以下是用于获取当前日期和时间并以指定格式打印的Java程序示例。

SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy/MM/dd HH:mm:ss\");
Date date = new Date();
System.out.println(dateFormat.format(date)); 

作为参考,自Java 8以来,我们可以使用LocalDateLocalTimeLocalDateTime类来处理日期和时间。这些类提供了更灵活、更强大的日期和时间操作功能。

LocalDate today = LocalDate.now();
System.out.println(\"Today\'s Local date : \" + today);

LocalTime time = LocalTime.now();
System.out.println(\"local time now : \" + time);

4. 转换Date和Calendar

4.1. 将Calendar转换为Date

Calendar calendar = Calendar.getInstance();
Date date =  calendar.getTime();

4.2. 将Date转换为Calendar

SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");
String dateInString = \"2023-09-08 10:22:56\";
Date date = sdf.parse(dateInString);

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

5. 比较两个日期

我们可以使用compareTo()方法比较两个日期实例。它返回一个整数值,表示给定的日期是在另一个日期之前还是之后。

比较 date1.compareTo(date2) 将返回:

  • 值等于0,即date2等于date1
  • 小于0的值,即date1date2之前;
  • 大于0的值,即date1date2之后。
Date date1 = new Date();
Date date2 = new Date();

int comparison = date1.compareTo(date2);

6. 提取年、月和日

Java程序用于分别获取日期的部分,如年、月等。

获取年、月、日期、小时等的方法已过时。如果需要获取或设置年、月、日期等,请使用java.util.Calendar

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());

int year       = calendar.get(Calendar.YEAR);
int month      = calendar.get(Calendar.MONTH);
// 注意:1月是0 , 而不是 1,即月份从0开始,0~11
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); 
int dayOfWeek  = calendar.get(Calendar.DAY_OF_WEEK);
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
int weekOfMonth= calendar.get(Calendar.WEEK_OF_MONTH);

int hour       = calendar.get(Calendar.HOUR);        // 12小时制
int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY); // 24小时制
int minute     = calendar.get(Calendar.MINUTE);
int second     = calendar.get(Calendar.SECOND);
int millisecond= calendar.get(Calendar.MILLISECOND);

 

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9190.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

986
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

463
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

347
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

455
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

516
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

831
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号