将SimpleDateFormat时间字符串转为LocalDateTime对象
时间: 2023-10-14 12:23:48 浏览: 104
好的,可以使用下面的代码将SimpleDateFormat格式的时间字符串转为LocalDateTime对象:
```java
String time = "2021-06-20 08:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(time, formatter);
```
这段代码将时间字符串"2021-06-20 08:30:00"转为LocalDateTime对象。如果时间字符串的格式不同,需要对应修改formatter的格式参数。
相关问题
java 将字符串转为LocalDateTime
Java中可以使用多种方法将字符串转换为LocalDateTime,以下是其中两种常用的方法:
方法一:使用hutool包进行转换
可以使用hutool包中的DateUtil.parse()方法将字符串先转换成DateTime,再转换为LocalDateTime。示例代码如下:
```
public static LocalDateTime parseLocalDateTime(String dateStr) {
DateTime parse = DateUtil.parse(dateStr);
Instant instant = parse.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
return localDateTime;
}
```
方法二:使用SimpleDateFormat进行转换
可以使用SimpleDateFormat将字符串转换为Date类型,再将Date类型转换为LocalDateTime。示例代码如下:
```
public static LocalDateTime toLocalDateTime(String dateStr) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateStr);
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
return localDateTime;
} catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException();
}
}
```
方法三:使用DateTimeFormatter进行转换
可以使用DateTimeFormatter将字符串直接转换为LocalDateTime。示例代码如下:
```
public static LocalDateTime toLocalDateTime(String dateStr) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(dateStr, formatter);
return localDateTime;
}
```
字符串转为calendar
### 将字符串转换为 Calendar 对象
在 Java 中,可以借助 `SimpleDateFormat` 和 `Calendar` 类来实现将字符串转换为 `Calendar` 实例的功能。以下是具体实现方式:
#### 方法描述
可以通过以下步骤完成此操作:
1. 使用 `SimpleDateFormat` 解析输入的日期字符串并将其转换为 `Date` 对象。
2. 创建一个新的 `Calendar` 实例并将解析后的 `Date` 设置到该实例中。
下面是完整的代码示例[^4]:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class StringToCalendarExample {
public static void main(String[] args) throws ParseException {
// 定义日期格式
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
// 输入的日期字符串
String dateStr = "12/12/2013";
// 将字符串解析为 Date 对象
Date parsedDate = dateFormat.parse(dateStr);
// 创建新的 Calendar 实例
Calendar calendar = Calendar.getInstance();
// 设置 Calendar 的时间字段为解析得到的时间戳
calendar.setTime(parsedDate);
System.out.println("Year: " + calendar.get(Calendar.YEAR));
System.out.println("Month (0-based): " + calendar.get(Calendar.MONTH)); // 注意月份是从 0 开始计数的
System.out.println("Day of Month: " + calendar.get(Calendar.DAY_OF_MONTH));
}
}
```
上述代码展示了如何利用 `SimpleDateFormat` 来解析日期字符串,并通过设置 `Calendar` 时间字段的方式创建对应的 `Calendar` 实例[^5]。
如果需要支持更复杂的场景(例如处理不同的时区),则可能还需要引入其他库或调整默认行为。
对于 JDK 8 及以上版本,推荐优先考虑使用 `LocalDate`, `LocalDateTime` 或者 `ZonedDateTime` 等现代 API 替代传统 `Calendar` 和 `SimpleDateFormat` 工具类[^2]。然而,在某些情况下仍然需要用到旧版 API,则可继续沿用上述方法。
阅读全文
相关推荐















