利用Java中的Calendar获取当前的时间

本文介绍了一个简单的Java程序,演示了如何使用Calendar类获取当前日期时间的各部分组成,并通过SimpleDateFormat进行日期格式化及字符串与日期间的转换。
  1. package com.ob;  
  2.   
  3. import java.text.ParseException;  
  4. import java.text.SimpleDateFormat;  
  5. import java.util.Calendar;  
  6. import java.util.Date;  
  7.   
  8. public class DateTest {  
  9.   
  10.     public static void main(String[] args) throws ParseException {  
  11.         Calendar now = Calendar.getInstance();  
  12.         System.out.println("年: " + now.get(Calendar.YEAR));  
  13.         System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");  
  14.         System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));  
  15.         System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));  
  16.         System.out.println("分: " + now.get(Calendar.MINUTE));  
  17.         System.out.println("秒: " + now.get(Calendar.SECOND));  
  18.         System.out.println("当前时间毫秒数:" + now.getTimeInMillis());  
  19.         System.out.println(now.getTime());  
  20.   
  21.         Date d = new Date();  
  22.         System.out.println(d);  
  23.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  24.         String dateNowStr = sdf.format(d);  
  25.         System.out.println("格式化后的日期:" + dateNowStr);  
  26.           
  27.         String str = "2012-1-13 17:26:33";  //要跟上面sdf定义的格式一样  
  28.         Date today = sdf.parse(str);  
  29.         System.out.println("字符串转成日期:" + today);  
  30.     }  
  31. }  
SimpleDateFormat函数语法:
   G 年代标志符
   y 年
   M 月
   d 日
   h 时 在上午或下午 (1~12)
   H 时 在一天中 (0~23)
   m 分
   s 秒
   S 毫秒
   E 星期
   D 一年中的第几天
   F 一月中第几个星期几
   w 一年中第几个星期
   W 一月中第几个星期
   a 上午 / 下午 标记符 
   k 时 在一天中 (1~24)
   K 时 在上午或下午 (0~11)
   z 时区



### Java获取当前时间 (String 格式) 的方法 在 Java 编程中,可以通过多种方式将当前时间以字符串的形式表示出来。以下是几种常见的实现方法: #### 方法一:使用 `LocalDateTime` 和 `DateTimeFormatter` 这是现代 Java 时间 API 推荐的方式之一,适用于 Java 8 及更高版本。它提供了更简洁和直观的时间处理功能。 ```java package Lx; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class TimeString { public static void main(String[] args) { String currentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println("当前时间:" + currentTime); } } ``` 上述代码展示了如何利用 `LocalDateTime` 来获取并格式化当前时间为字符串形式[^1]。 --- #### 方法二:使用 `System.currentTimeMillis()` 并手动格式化 这种方法不依赖任何外部库,直接返回自 Unix 纪元以来的毫秒数。如果需要将其转化为可读性强的字符串,则需进一步操作。 虽然该方法效率高且不受时区影响,但它并不适合直接用于显示目的,因为其原始输出为时间戳而非人类友好的日期/时间格式[^2]。 --- #### 方法三:借助 `Date` 类与 `SimpleDateFormat` 这是一种传统但仍然广泛使用的解决方案。通过创建一个 `Date` 对象实例代表此刻的具体时刻,再配合 `SimpleDateFormat` 定义期望展示样式即可完成转化过程。 下面的例子演示了怎样把今天的日期按照 “YYYY年MM月DD日” 这样的中文描述呈现给用户查看: ```java package com.shengda.Demo11Date; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo3 { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String result1 = sdf.format(date); System.out.println(result1); } } ``` 这里采用了 `SimpleDateFormat` 来定制输出模式[^3]。 --- #### 方法四:结合 `Calendar` 类型转换 除了以上提到的技术外,还有另一种途径——运用 `Calendar` 实现相同目标。不过由于其实现机制较为复杂,在实际开发场景下较少单独采用这种方式来仅仅为了取得简单的日期表达而已。 对于只需要获得最终结果的人来说,推荐优先考虑前面介绍过的那些更为简便高效的选项。 --- ### 总结 综上所述,最简单有效的方法通常是选用 **Java 8 新特性** (`LocalDateTime`) 或者基于旧版支持良好的组合方案(`Date` 加上 `SimpleDateFormat`) 。具体选择取决于项目环境以及个人偏好等因素决定。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值