SimpleDateFormat 将6位string转成8位string
时间: 2024-02-20 17:03:39 浏览: 14
假设你要将一个6位的数字字符串转换为8位的日期字符串,其中6位的数字字符串表示为"yyMMdd"的格式,可以使用 SimpleDateFormat 类的 format() 方法将其转换为"yyyyMMdd"的格式。代码示例如下:
```java
SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMdd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
String dateStr1 = "210101"; // 6位日期字符串
try {
Date date = sdf1.parse(dateStr1); // 将6位日期字符串解析为Date对象
String dateStr2 = sdf2.format(date); // 将Date对象格式化为8位日期字符串
System.out.println(dateStr2); // 输出:20210101
} catch (ParseException e) {
e.printStackTrace();
}
```
其中,sdf1 和 sdf2 分别表示原日期格式和目标日期格式。首先,使用 sdf1 将输入的 6 位日期字符串解析为一个 Date 对象,然后使用 sdf2 将该 Date 对象格式化为 8 位日期字符串。最后,输出结果为"20210101"。
相关问题
SimpleDateFormat转换String一直是1970
回答: 在你的代码中,你使用了SimpleDateFormat类来将时间戳转换为字符串。然而,根据你提供的代码片段,出现了一个问题,导致转换结果一直是1970年。这个问题可能是因为你在将时间戳转换为Date对象时,使用了错误的时间单位。在Java中,时间戳通常是以秒为单位表示的,而不是以毫秒为单位。所以,你需要将时间戳除以1000L,以获取正确的时间值。即将这行代码:
```
long lt = new Long(Long.valueOf(queryBarnSwallowDto.getGraduateDate()) * 1000L);
```
修改为:
```
long lt = new Long(Long.valueOf(queryBarnSwallowDto.getGraduateDate()) / 1000L);
```
这样,你就可以得到正确的日期字符串了。另外,确保你的时间戳是以秒为单位,而不是其他单位。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [关于SimpleDateFormat时间转换总是显示1970年的问题](https://blog.csdn.net/W_317/article/details/121144329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [SimpleDateFormat /String/Date互转](https://blog.csdn.net/qq_47959958/article/details/125806124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
SimpleDateFormat转string少了一天
您好!很抱歉听说您在使用SimpleDateFormat将日期转换为字符串时丢失了一天。这可能是由于以下原因之一导致的问题:
1. 日期格式错误:请确保您提供的日期格式与您要解析的日期字符串的实际格式匹配。如果格式不正确,解析过程可能会导致不准确的结果。
2. 时区问题:SimpleDateFormat默认使用本地时区。如果您的日期字符串中没有指定时区信息,而您的系统时区与日期字符串的时区不同,则可能会导致日期转换不正确。在这种情况下,您可以使用setTimeZone方法设置正确的时区。
3. 代码逻辑错误:请检查您的代码逻辑,确保您没有在转换过程中意外跳过了一天。
如果您能提供一些关于您的代码和日期字符串的更多信息,我可以为您提供更具体的帮助。