Datetime 给定整数格式的日期,如何将其转换为日期对象?

Datetime 给定整数格式的日期,如何将其转换为日期对象?,datetime,jodatime,Datetime,Jodatime,对于一个应用程序,我需要从文件上传中提取一些字段。其中一个字段是不带分隔符的十进制日期,格式为yyyyMMDD。例如,今天的日期将表示为20130406 Java Date类或Joda time中是否存在将其转换为SQL样式的DateTime字段的现有实用程序?这在Joda或基本Java日期解析中应该相当简单,只需转换为字符串并使用YYYYMMdd解析模式即可。以下内容适用于JODA time import org.joda.time.DateTime; import org.joda.time

对于一个应用程序,我需要从文件上传中提取一些字段。其中一个字段是不带分隔符的十进制日期,格式为yyyyMMDD。例如,今天的日期将表示为20130406


Java Date类或Joda time中是否存在将其转换为SQL样式的DateTime字段的现有实用程序?

这在Joda或基本Java日期解析中应该相当简单,只需转换为字符串并使用YYYYMMdd解析模式即可。以下内容适用于JODA time

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class Example {

    public static void main(String[] args) throws Exception {

        int date = 20130406;
        String dateString = Integer.toString(date);
        System.out.println(dateString);

        DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYYMMdd");

        DateTime result = formatter.parseDateTime(dateString);
        System.out.println(result);

    }
}

我的方法是:将其转换为
字符串
,然后解析值以将其转换为
int
。你已经知道年、月、日和小时的位置,所以这很容易。 例如:

String dateAsText = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                          .format(new Date(1333125342 * 1000L));


int year= Integer.parseInt(dateAsText.substring(0,4));

您可能会这么认为,但我在文档中看到的所有示例都是指解析现有的日期时间对象,而不是将一个日期时间对象传递给它。