对于应用程序,我需要从文件上传中提取出许多字段。其中一个字段是十进制日期,没有分隔符和yyyyMMDD。例如,今天的日期将表示为20130406。
Java Date类或Joda时间中是否存在将其转换为SQL样式的DateTime字段的现有实用程序?
答案 0 :(得分:1)
这在JODA或基本Java日期解析中应该相当简单,只需转换为字符串并使用YYYYMMdd的解析模式。以下适用于JODA时间。
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);
}
}
答案 1 :(得分:1)
我的方法:将其转换为String
,然后解析值以将其转换为int
。您已经知道年,月,日和小时的位置,因此很容易。
例如:
String dateAsText = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date(1333125342 * 1000L));
int year= Integer.parseInt(dateAsText.substring(0,4));