如何将 String 转换为 Instant 将日期字符串连接到时间字符串?
How do I convert String to Instant concatenating a date string to a time string?
我需要将此字符串转换为 Instant,我是这样做的:
String inputStartDate = startDate+" 00:00:00.000";
String inputEndDate = endDate+" 23:59:59.999";
startDate 只是日期,因为我从另一个调用中获取了字符串,但我需要保持小时不变,与 endDate 的方式相同。
然后,我像这样转换为 Instant:
Instant newStarDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(inputStartDate).toInstant();
Instant newEndDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(inputEndDate).toInstant();
但是当我转换成instant时,它转换错了。
例如:
startDate="2022-02-04"
endDate="2022-02-04"
当我进行连接时,字符串是这样的:
inputStartDate: "2022-02-03 00:00:00.000"
inputEndDate: "2022-02-04 23:59:59.999"
然后转成瞬间的结果是这样的,不知道哪里不对
newStartDate:"2022-02-03T03:00:00Z"
newEndDate:"2022-02-05T02:59:59.999Z"
我需要 yyyy-MM-dd HH:mm:ss.SSS 来执行 mongodb 查询,它需要是 Instant。
我得到了答案,它比我想象的要容易。
与其给它一个 SimpleDateFormat,不如像这样直接将它转换为 Instant:
Instant finalStartDate = Instant.parse(startDate+"T00:00:00.000Z");
Instant finalEndDate = Instant.parse(endDate+"T23:59:59.999Z");
您必须添加 T 和 Z。
我需要将此字符串转换为 Instant,我是这样做的:
String inputStartDate = startDate+" 00:00:00.000";
String inputEndDate = endDate+" 23:59:59.999";
startDate 只是日期,因为我从另一个调用中获取了字符串,但我需要保持小时不变,与 endDate 的方式相同。
然后,我像这样转换为 Instant:
Instant newStarDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(inputStartDate).toInstant();
Instant newEndDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(inputEndDate).toInstant();
但是当我转换成instant时,它转换错了。 例如:
startDate="2022-02-04"
endDate="2022-02-04"
当我进行连接时,字符串是这样的:
inputStartDate: "2022-02-03 00:00:00.000"
inputEndDate: "2022-02-04 23:59:59.999"
然后转成瞬间的结果是这样的,不知道哪里不对
newStartDate:"2022-02-03T03:00:00Z"
newEndDate:"2022-02-05T02:59:59.999Z"
我需要 yyyy-MM-dd HH:mm:ss.SSS 来执行 mongodb 查询,它需要是 Instant。
我得到了答案,它比我想象的要容易。
与其给它一个 SimpleDateFormat,不如像这样直接将它转换为 Instant:
Instant finalStartDate = Instant.parse(startDate+"T00:00:00.000Z");
Instant finalEndDate = Instant.parse(endDate+"T23:59:59.999Z");
您必须添加 T 和 Z。