在facebook api上工作时,我遇到了一个名为start_time的字段是datetime类型,我在我的DTO类中声明了一个start_time字段作为字符串,而我正在将json转换为java,我可以获得start_time,我填充在我的DTO对象中,但当我尝试从DTO对象检索时,它显示我为空。
DataDTO data = new DataDTO();
String start_time = item.getString("start_time").toString();
data.setStart_time(start_time);
System.out.println(start_time ) // 2016-03-12T22:00:00-0300
System.out.println(data.getStart_time()); // getting null
my DTO class
public class DataDTO implements Serializable{
private String id;
private String name;
private String start_time;
private String timezone;
private String location;
private String end_time;
//getters and setters
}
my sample json data
{
"id":"1443832172536969",
"timezone":"America/New_York",
"location":"Atlanta, GA, United States",
"name":"Atlanta Dream Tour 2015",
"start_time":"2016-03-12T22:00:00-0300"
}
当我谷歌我来知道,DateTime是属于joda时间api到底是什么?我需要在我的joda-time api项目中包含任何jar文件吗?
我尝试创建DateTime dt = new DateTime();在我的方法中,它显示的DateTime不能解析为一个类型。
我正在使用java版本1.7.0_40,这支持joda-time。我尝试使用toString()方法转换为字符串,但没有使用。请帮助我如何将日期时间转换为字符串?
我误解了什么吗?
可能发生这种情况的唯一原因是data.setStart_time(start_time);
不工作或data.getStart_time()
没有正确实现。
DateTime和String之间不需要转换
如果你只是想将开始日期更改为字符串,那么你可以使用
start_time_string = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS",java.util.Locale.getDefault()).parse(start_time);
您正在使用Maven吗?您是否在您的pom.xml中添加了joda-time依赖?如果你不这样做,你应该添加这样的内容:
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.8</version>
</dependency>
更多信息可以在这里找到。希望能有所帮助!
尝试日历:
Calendar c = Calendar.getInstance();
System.out.println("Seconds : "+c.get(Calendar.SECOND));
System.out.println("Minute : "+c.get(Calendar.MINUTE));
System.out.println("Hour of day : "+c.get(Calendar.HOUR_OF_DAY));
System.out.println("Date : "+c.get(Calendar.DATE));
System.out.println("Day : "+c.get(Calendar.DAY_OF_WEEK));
System.out.println("Month : "+c.get(Calendar.MONTH));
System.out.println("Year : "+c.get(Calendar.YEAR));
并按您的要求格式化。