Java日期处理:String、Calendar与Date之间的转换详解

需积分: 49 14 下载量 21 浏览量 更新于2024-09-13 收藏 3KB TXT 举报
在Java编程中,字符串(String)、日期(Date)和日历(Calendar)是常见的数据类型,它们之间的相互转换对于处理时间相关的操作至关重要。本文将详细介绍如何在这些对象之间进行格式化的转换。 1. Calendar 转换为 String: 首先,创建一个`SimpleDateFormat`对象,指定所需的日期格式(例如 "yyyy-MM-dd HH:mm:ss")。然后,使用`Calendar`的`getTime()`方法获取当前或指定日期的时间,并通过`format()`方法将其转换为字符串。例如: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); // 获取当前时间 String dateStr = sdf.format(calendar.getTime()); // 将Calendar对象格式化为字符串 ``` 2. String 转换为 Calendar: 通过`SimpleDateFormat`的`parse()`方法,可以将符合特定格式的字符串解析成`Date`对象,进一步转换为`Calendar`。比如,将"2010-5-27"转换为Calendar: ```java String str = "2010-5-27"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(str); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); // 设置Calendar对象的时间 ``` 3. Date 转换为 String: 可以直接使用`SimpleDateFormat`的`format()`方法将`Date`对象转换为字符串,示例同上: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(newDate()); // 将Date对象格式化为字符串 ``` 4. String 转换为 Date: 同样地,`SimpleDateFormat`的`parse()`方法可以将符合格式的字符串解析为`Date`对象: ```java String str = "2010-5-27"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date birthday = sdf.parse(str); // 将字符串转换为Date对象 ``` 5. Date 转换为 Calendar: 使用`Calendar`的`setTime()`方法,将`Date`对象设置为`Calendar`中的时间: ```java Calendar calendar = Calendar.getInstance(); calendar.setTime(new java.util.Date()); // 将Date对象的时间赋值给Calendar ``` 6. Calendar 转换为 Date: 最后,`Calendar`的`getTime()`方法会返回一个`Date`对象,代表当前或设置的日期: ```java Calendar calendar = Calendar.getInstance(); java.util.Date date = calendar.getTime(); // 将Calendar对象转换为Date ``` 7. Date 转换为 String(重复了前面的第3步,这里再次强调): 使用`format()`方法将Date对象转换为指定格式的字符串: ```java System.out.println(sdf.format(newDate())); ``` 8. String 转换为 Timestamp: `Timestamp`是Java中的另一个日期时间类型,可以使用`Timestamp.valueOf()`方法将字符串转换为`Timestamp`: ```java Timestamp timestamp = Timestamp.valueOf("2011-1-14 08:11:00"); ``` 9. Timestamp 转换为 String: 通过`Timestamp`的`toString()`方法,可以得到其字符串表示: ```java String strTimestamp = sdf.format(timestamp); ``` Java中字符串、日期和日历之间的转换涉及到`SimpleDateFormat`、`Date`和`Calendar`等类,正确理解和运用这些转换方法对于处理日期和时间的程序设计至关重要。理解这些基本操作有助于编写出更灵活、可维护的代码。