无法解析日期 ["2022-02-21 13:26:59.213+00:00"]: 无效时区指示符 ' ' - 使用 Retrofit 和 SimpleDateFormat
Failed to parse date ["2022-02-21 13:26:59.213+00:00"]: Invalid time zone indicator ' ' - Using Retrofit and SimpleDateFormat
我正在使用 Retrofit 从 Android 应用中使用 C# webapi。我一直收到错误消息:
Failed to parse date ["2022-02-21 12:10:18.043+00:00"]: Invalid time
zone indicator ' '
我用于 return 来自 C# dotnet api 的日期值的格式是:
"yyyy-MM-dd HH:mm:ss.fffzzz"
我在 this page 上找到了格式设置选项。
我在 Android 端使用的格式是:
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
并且 Gson 选项基于 SimpleDateFormat。
String dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
Gson gson = new GsonBuilder()
.setDateFormat(dateFormat)
.create();
我也试过这个:
String dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
Gson gson = new GsonBuilder()
.setDateFormat(dateFormat)
.create();
因为在 SimpleDateFormat 页面上:
但是得到同样的错误:
Caused by: java.text.ParseException: Failed to parse date ["2022-02-21
13:52:38.207+00:00"]: Invalid time zone indicator ' '
有没有人运行以前参与过这个?
我读了这个 post and there were a lot of responses explaining Z, but and a reference to ISO 8601,其中涵盖了偏移量:
它甚至指的是0偏移量:
根据您给定的日期:2022-02-21 12:10:18.043+00:00
您的日期格式应类似于 yyyy-MM-dd HH:mm:ss.SSSZ
。
来源:http://tutorials.jenkov.com/java-internationalization/simpledateformat.html
示例代码:
void parseDateExample() {
String dateToParse = "2022-02-21 12:10:18.043+00:00";
String dateFormat = "yyyy-MM-dd HH:mm:ss.SSSZ";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.getDefault());
try {
Date date = sdf.parse(dateToParse);
Log.d("Mg-date", date.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
我正在使用 Retrofit 从 Android 应用中使用 C# webapi。我一直收到错误消息:
Failed to parse date ["2022-02-21 12:10:18.043+00:00"]: Invalid time zone indicator ' '
我用于 return 来自 C# dotnet api 的日期值的格式是:
"yyyy-MM-dd HH:mm:ss.fffzzz"
我在 this page 上找到了格式设置选项。
我在 Android 端使用的格式是:
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
并且 Gson 选项基于 SimpleDateFormat。
String dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
Gson gson = new GsonBuilder()
.setDateFormat(dateFormat)
.create();
我也试过这个:
String dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
Gson gson = new GsonBuilder()
.setDateFormat(dateFormat)
.create();
因为在 SimpleDateFormat 页面上:
但是得到同样的错误:
Caused by: java.text.ParseException: Failed to parse date ["2022-02-21 13:52:38.207+00:00"]: Invalid time zone indicator ' '
有没有人运行以前参与过这个?
我读了这个 post and there were a lot of responses explaining Z, but and a reference to ISO 8601,其中涵盖了偏移量:
它甚至指的是0偏移量:
根据您给定的日期:2022-02-21 12:10:18.043+00:00
您的日期格式应类似于 yyyy-MM-dd HH:mm:ss.SSSZ
。
来源:http://tutorials.jenkov.com/java-internationalization/simpledateformat.html
示例代码:
void parseDateExample() {
String dateToParse = "2022-02-21 12:10:18.043+00:00";
String dateFormat = "yyyy-MM-dd HH:mm:ss.SSSZ";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.getDefault());
try {
Date date = sdf.parse(dateToParse);
Log.d("Mg-date", date.toString());
} catch (Exception e) {
e.printStackTrace();
}
}