如何在java中将datetime转换为String?

时间:2015-06-03 10:44:05

标签: java json date datetime jodatime

在facebook api上工作时遇到一个名为start_time的字段是datetime类型,我在我的DTO类中将start_time字段声明为字符串,而我将json转换为java我能够获得start_time并且我填充了我的dto对象但是当我尝试从DTO对象中检索时它显示为null。

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

我的DTO课程

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
}

我的样本json数据

{  
      "id":"1443832172536969",
      "timezone":"America/New_York",
      "location":"Atlanta, GA, United States",
      "name":"Atlanta Dream Tour 2015",
      "start_time":"2016-03-12T22:00:00-0300"
   }

当我用Google搜索时,我才知道DateTime属于joda time api究竟属于什么?我是否需要在项目中包含joda-time api的任何jar文件?

我尝试创建DateTime dt = new DateTime();在我的方法中,显示DateTime无法解析为类型。

我正在使用java版本1.7.0_40这是否支持joda-time。 我尝试使用toString()方法转换为字符串,但没有用。 请帮助我如何将DateTime转换为字符串?

4 个答案:

答案 0 :(得分:0)

我误解了什么吗? 发生这种情况的唯一原因是data.setStart_time(start_time);无效或data.getStart_time()未正确实施。
DateTime和String之间不需要转换。

答案 1 :(得分:0)

如果您只想将开始日期更改为字符串,则可以使用

start_time_string = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS",java.util.Locale.getDefault()).parse(start_time);

答案 2 :(得分:0)

你在使用Maven吗?你有没有在你的pom.xml上添加joda-time依赖?如果你没有,你应该添加这样的东西:

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.8</version>
</dependency>

可以找到更多信息here。希望它有所帮助!

答案 3 :(得分:0)

尝试日历:

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)); 

并根据您的要求对其进行格式化。