如何将日期时间转换为日期?
How to convert DateTime to Date?
在 Cotacoes
class 中,我有 creation_date
字段,它是一个日期,但在服务器上它是一个日期时间。收到JSON后,出现以下错误:
java.text.ParseException: Failed to parse date ["2018-11-05T12:12:37.307']: No time zone indicator
如何解决这个问题?
我使用 retrofit 从服务器拨打和接听电话。
科塔科斯:
public class Cotacoes implements Serializable {
private static final long serialVersionUID = 842387749350567455L;
@SerializedName("quotation_id")
@Expose
private int quotation_id;
//private int transaction_id;
@SerializedName("pecas")
@Expose
private List<Pecas> pecas;
@SerializedName("creation_date")
@Expose
private Date creation_date;
// private int duration;
@SerializedName("brand")
@Expose
private String brand;
@SerializedName("vehicle")
@Expose
private String vehicle;
....
getters and setters
}
改造:
public class APIRetrofit {
public static final String BASE_URL = "http://server.net/";
private static Retrofit retrofit = null;
private static Gson gson = new GsonBuilder()
.create();
public static Retrofit getRetrofitClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
}
接口:
public interface APIService {
interface ReturnFutureCallback<T> {
void onSuccess(T retorno);
void onFailure(T retorno);
}
@POST("/cotacao")
@FormUrlEncoded
Call<JsonQuotationResponse> listaCotacao(@Header("Authorization") String token, @Field("seller_company_id") String seller_company_id);
}
您必须创建 JsonDeserializer 以将 DateTime 解析为自定义的 Date 对象。
更多详情可以参考以下链接:
https://kylewbanks.com/blog/String-Date-Parsing-with-GSON-UTC-Time-Zone
gson fails to parse using GsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
- 我认为,在服务器上,它是 longtime 或 String,所以 creation_date 字段,它是 longtime 或 String
在 Cotacoes
class 中,我有 creation_date
字段,它是一个日期,但在服务器上它是一个日期时间。收到JSON后,出现以下错误:
java.text.ParseException: Failed to parse date ["2018-11-05T12:12:37.307']: No time zone indicator
如何解决这个问题? 我使用 retrofit 从服务器拨打和接听电话。
科塔科斯:
public class Cotacoes implements Serializable {
private static final long serialVersionUID = 842387749350567455L;
@SerializedName("quotation_id")
@Expose
private int quotation_id;
//private int transaction_id;
@SerializedName("pecas")
@Expose
private List<Pecas> pecas;
@SerializedName("creation_date")
@Expose
private Date creation_date;
// private int duration;
@SerializedName("brand")
@Expose
private String brand;
@SerializedName("vehicle")
@Expose
private String vehicle;
....
getters and setters
}
改造:
public class APIRetrofit {
public static final String BASE_URL = "http://server.net/";
private static Retrofit retrofit = null;
private static Gson gson = new GsonBuilder()
.create();
public static Retrofit getRetrofitClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
}
接口:
public interface APIService {
interface ReturnFutureCallback<T> {
void onSuccess(T retorno);
void onFailure(T retorno);
}
@POST("/cotacao")
@FormUrlEncoded
Call<JsonQuotationResponse> listaCotacao(@Header("Authorization") String token, @Field("seller_company_id") String seller_company_id);
}
您必须创建 JsonDeserializer 以将 DateTime 解析为自定义的 Date 对象。
更多详情可以参考以下链接:
https://kylewbanks.com/blog/String-Date-Parsing-with-GSON-UTC-Time-Zone
gson fails to parse using GsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
- 我认为,在服务器上,它是 longtime 或 String,所以 creation_date 字段,它是 longtime 或 String