json的日期字符串转换为java的Date类型

供本人记录用

1、json文件的日期格式

采取 “yyyy-MM-dd hh-mm-ss”或“yyyy-MM-dd”格式均可,注意与java保持一致即可。

{"time":"2023-05-23 15:28:12"}

2、java文件的格式转换函数

import java.text.SimpleDateFormat ;
import java.util.Date;

public static Date stringtoDate(String time) throws Exception{
        //规定字符串类型日期的格式
        SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
        Date t;
        //字符串转Date
        t=ft.parse(time);
        return t;
    }

需注意SimpleDateFormat.parse()方法可能会抛出ParseException异常,因此需要进行异常处理(throws Exception)。

3、Date类型转换为string

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateToString{
    public static void main(String[] args) {
        // 获取当前日期和时间
        Date now = new Date();

        // 将日期转换成字符串格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr = sdf.format(now);

        // 输出转换后的字符串
        System.out.println(dateStr);
    }
}

方式二:在json文件中先以时间戳格式传输日期,java文件中将时间戳转换为日期字符串然后再转化为Date。

import java.lang.System;
import java.text.SimpleDateFormat;
import java.util.Date;

public class timestamp{
    public static void main(String[] aegs){
        // 获取时间戳
        long ts = System.currentTimeMillis();
        System.out.println(ts);
        
        // 时间戳转化为字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = sdf.format(new Date(ts));
        System.out.print(time);
    }
}

要将JSON字符串正确转换JavaDate对象,你需要按照Java日期时间API规范(如`java.util.Calendar`、`java.time.LocalDate`或`java.time.LocalDateTime`),尤其是如果你的日期字符串符合ISO 8601标准(YYYY-MM-DD或YYYY-MM-dd'T'HH:mm:ss.SSSZ)。以下是基本步骤: 1. **使用`SimpleDateFormat`或`DateTimeFormatter`**: - 对于`SimpleDateFormat`,你可以创建一个实例并指定合适的日期格式,然后使用`parse()`方法: ```java String dateString = "2000-03-02"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = formatter.parse(dateString); ``` 2. **使用`java.time`包**: - 使用`LocalDate`和`DateTimeFormatter`,例如: ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); LocalDate localDate = LocalDate.parse(dateString, formatter); // 如果需要带时分秒,可以改为LocalDateTime LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter.with(TemporalAdjusters.ofTime ZoneId.systemDefault())); ``` 3. **异常处理**: 转换过程中可能会抛出`ParseException`,因此通常建议捕获并处理它。 4. **`Instant`与`ZonedDateTime`**: 如果日期带有时区,可以考虑使用`Instant`和`ZonedDateTime`: ```java String dateStringWithTimeZone = "2000-03-02T08:00:00+08:00"; ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateStringWithTimeZone); ``` 记得检查输入日期是否有效,如果不确定,可以在转换前添加校验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值