在应用程序中,我使用 Retrofit
来使用 api 数据。作为转换器,我使用 Gson
new GsonBuilder()
.setDateFormat("yyyy-MM-dd")
.create();
我从 api 获取如下所示的 Date
类型。但我无法将其转换为 java.util.Date 对象。
{
"date":{
"year":2018,
"month":2,
"day":11
},
"time":{
"hour":22,
"minute":40,
"second":0,
"nano":0
}
}
为了获取这种类型的日期,我创建了名为 CustomDate、CustomTime、CustomDateTime 的新类。
自定义日期
public class CustomDate implements Serializable{
private int year;
private int month;
private int day;
自定义时间
public class CustomTime implements Serializable {
private int hour;
private int minute;
private int second;
private int nano;
自定义日期时间
public class CustomDateTime implements Serializable {
private CustomDate date;
private CustomTime time;
我的问题是如何在没有上述自定义类的情况下转换使用的数据。我真正想要的是日期格式化程序。我应该放置什么 .setDateFormat("")
来处理日期转换。
最佳答案
如果你想从 gson 设置日期和时间,请尝试这样
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, CustomDate.date);// your date object.value
calendar.set(Calendar.YEAR, CustomDate.year); //your date object.value
calendar.set(Calendar.MONTH, CustomDate.month); //your date object.value
calendar.set(Calendar.HOUR_OF_DAY, CustomTime.hour); //your time object.value
calendar.set(Calendar.MINUTE, CustomTime.minute);//your time object.value
calendar.set(Calendar.SECOND, CustomTime.second);//your time object.value
System.out.println(calendar.getTime());
关于java - 没有自定义类的改造日期解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48280748/