java - Java SimpleDateFormat 未检测到月份
问题描述
我在 Java 中使用 SimpleDateFormat,由于某种原因它没有检测到月份。这是我的代码:
/**
* Takes a date/time stamp which looks like yyyyMMDDhhmmss on converts it to
* yyyy-MM-DDThh:mm:ssZ
*
* @param timestamp
* @return
*/
public static String ConvertDate(String timestamp) {
if (timestamp == null || timestamp.length() < 14)
return null;
String timeString = null;
System.out.println(timestamp);
DateFormat outputFormat = new SimpleDateFormat("YYYY-MM-DD'T'hh:mm:ss'Z'");
DateFormat inputFormat = new SimpleDateFormat("yyyyMMDDhhmmss");
try{
Date date = inputFormat.parse(timestamp);
timeString = outputFormat.format(date);
}
catch(Exception e){}
return timeString;
}
调用此方法:ConvertDate("20190803122424")
返回以下内容:2019-01-03T12:24:24Z
而我想返回:2019-08-03T12:24:24Z
我的输出格式有问题吗?
解决方案
您使用了错误的日期格式字符串:(DD
年中的日)而不是dd
(月中的日)。将两个SimpleDateFormat
实例更改为使用dd
:
DateFormat inputFormat = new SimpleDateFormat("yyyyMMddhhmmss");
DateFormat outputFormat = new SimpleDateFormat("YYYY-MM-dd'T'hh:mm:ss'Z'");
因此,您得到了错误的结果。
推荐阅读
- laravel - Laravel 本地停止工作,所有 artisan 命令和 composer 命令都不起作用
- makefile - 在 Makefile 中的命令替换中插入变量
- azure - 如果 SignalR 在 HTTPS 上,则无法建立连接
- r - 使用 misc3d 绘制平滑的隐式曲面
- .net - 图标是像素化的图片框
- mysql - 按我的 sql 中的一个字段分组并将另一个字段值连接为一个字符串
- php - 为什么我不能使用 PHP 访问类中的函数
- c# - 路由中的枚举序列化
- token - 如何将 ERC20 代币持有者的钱包地址保密?
- scala - 从 RDD 中获取 HashMap