你好,我有一个日期格式,我在长整数格式的API调用中使用。该API调用不支持任何其他格式的日期,它应如下所示。
public static long start_date=20140401101010L;
public static long end_date=20140430101010L;
我必须在该日期进行一些更改,因此我将该日期更改为JodaDate格式,如下面的代码所示。
DateTime startDateTime = formatter.parseDateTime(String.valueOf(start_date));
DateTime endDateTime = formatter.parseDateTime(String.valueOf(end_date));
这是我们将普通变量转换为DateTime对象的方法。那我该怎么做呢?如果我有一个JodaTime 2014-04-30T10:10:10.000 + 05:30,我想将这个时间改为这个格式,它是一个长整数。 20140430101010L。我想这样做,因为我正在做一个API程序,url参数有时间,只支持上面的格式而不是JodaTime。
答案 0 :(得分:3)
将joda时间对象格式化为字符串,然后转换为long。
您需要一个以您想要的格式输出的格式化程序
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss");
String formatted = formatter.format(datetime);
long lvalue = Long.parseLong(formatted).longValue();
答案 1 :(得分:2)
一种解决方案是使用DateTimeFormat构建String,然后将其解析为Long。
答案 2 :(得分:0)
如果真的需要long
格式,我会严重质疑:
long dateTimeLong = year * 10000000000L
+ month * 100000000L
+ date * 1000000L
+ hours * 10000L
+ minutes * 100L
+ seconds * 1L;
你说你需要一个URL参数,这是一个字符串,而不是长。所以只需使用
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss");
String dateTimeString = formatter.print(dateTime);
答案 3 :(得分:0)
public class DateConverter {
private static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss");
private final DateTime dateTime;
public DateConverter(DateTime dateTime) {
this.dateTime = dateTime;
}
private Long toLong() {
return Long.valueOf(dateTime.toString(formatter));
}
public static void main(String [] args) {
System.out.println(new DateConverter(DateTime.now()).toLong());
}
}
输出:
20140623131922
Process finished with exit code 0