java获取当前年月日时分秒等

本文介绍如何使用Java的Calendar类和SimpleDateFormat来获取和格式化当前日期时间,包括获取年、月、日、时、分、秒等信息,并展示如何得到一周、一月及一年中的具体日期位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Calendar cal = Calendar.getInstance();

// 当前年
int year = cal .get(Calendar.YEAR);  
// 当前月
int month = cal .get(Calendar.MONTH) + 1;  
// 当前日
int day = cal .get(Calendar.DATE);  
// 当前小时
int hour = cal .get(Calendar.HOUR_OF_DAY);  
// 当前分钟
int minute = cal .get(Calendar.MINUTE);  
// 当前秒
int second = cal .get(Calendar.SECOND);  

System.out.println(year + " 年 " + month + " 月"+ day + "日" + hour + " 时" + minute + " 分" + second + "秒");


// 当前是本周第几天
int dayOfWeek = cal .get(Calendar.DAY_OF_WEEK);  
// 当前是本月第几天
int dayOfMonth = cal .get(Calendar.DAY_OF_MONTH);  
// 当前是本年第几天
int dayOfYear = cal .get(Calendar.DAY_OF_YEAR);

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
//  当月第一天
cal = Calendar.getInstance();
cal .add(Calendar.MONTH, 0);
cal .set(Calendar.DAY_OF_MONTH, 1);  
String firstday = format.format(cal .getTime());  

System.out.println("本月第一天是:" + firstday );


//  当月最后一天
cal = Calendar.getInstance();  
cal .add(Calendar.MONTH, 1);  
cal .set(Calendar.DAY_OF_MONTH, 0);  
String lastday = format.format(cal .getTime());  

System.out.println("本月最后一天是:" + lastday);

 

// 通过Date对象获取
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date(); 
System.out.println("当前日期字符串:" + format.format(date));

 

### Java获取当前日期时间 (年月日时分秒) 在 Java 编程中,可以通过 `java.util.Calendar` 或者更现代的方式——`java.time.LocalDateTime` 来获取当前、月、日、时、分、秒。以下是两种方法的具体实现。 #### 方法一:使用 `Calendar` 类 `Calendar` 是一个抽象类,它提供了访问和修改日期字段的功能。可以利用其子类实例化对象并提取所需的日期部分: ```java import java.util.Calendar; public class Main { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // 注意:月份从0开始计数 int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); // 使用24小时制 int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day + ", Hour: " + hour + ", Minute: " + minute + ", Second: " + second); } } ``` 这种方法适用于较旧版本的 JDK[^1]。 #### 方法二:使用 `LocalDateTime` 类 自 Java 8 起引入了新的日期时间 API (`java.time`),推荐使用该模块下的 `LocalDateTime` 类来处理日期和时间。这种方式更加直观且线程安全: ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); int year = now.getYear(); int month = now.getMonthValue(); // 返回的是1到12之间的整数值 int day = now.getDayOfMonth(); int hour = now.getHour(); int minute = now.getMinute(); int second = now.getSecond(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDate = now.format(formatter); System.out.println("Formatted Date-Time: " + formattedDate); System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day + ", Hour: " + hour + ", Minute: " + minute + ", Second: " + second); } } ``` 此代码片段展示了如何通过 `LocalDateTime` 提取各个时间组件以及格式化输出的时间字符串[^2]。 如果还需要包含毫秒级别的精度,则可进一步扩展上述逻辑,如下所示: ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); int millisecond = now.getNano() / 1_000_000; // 将纳秒转换成毫秒 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); String formattedDateWithMillis = now.format(formatter).replace(".000", "." + String.format("%03d", millisecond)); System.out.println("Formatted Date-Time with Milliseconds: " + formattedDateWithMillis); } } ``` 这里特别注意毫秒是从纳秒单位计算而来,并进行了简单的格式调整以匹配标准输出形式[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风起未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值