2014-06-23 5 views
1

hello long integer 형식의 API 호출에서 사용하는 날짜 형식이 있습니다. 이 API 호출은 다른 형식의 날짜를 지원하지 않으며 다음과 같이 사용해야합니다.JodaTime을 Long Integer 형식으로 변환합니다.

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이고이 시간을 Long 정수 형식의이 형식으로 변경하고 싶습니다. 20140430101010L. 나는 API 프로그램을하고 url 매개 변수에 시간이 있고 JodaTime이 아닌 위 형식 만 지원하기 때문에이 작업을 수행하려고합니다.

+0

당신이 당신의'formatter'의 정의를 게시하시기 바랍니다 수를 - 그것이 'SimpleDateFormat'과 형식 문자열 (YYYY MM etc ...)은 무엇입니까? – vikingsteve

+0

YYYYMMDDHHMMSS 형식으로 변경하고 싶습니다. – sarath

+0

"url 매개 변수"인 경우 왜 길어야합니까? –

답변

2

한 가지 해결책은 DateTimeFormat을 사용하여 문자열을 작성한 다음 Long으로 구문 분석하는 것입니다.

+0

나는 그가 어떻게 그 일을하는지 보여주기를 원한다고 생각한다. – vikingsteve

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

나는 이것을 얻지 못했다. – sarath

+0

마지막 단계로 'Long'으로 변환 ... – vikingsteve

+0

@vikingsteve : 아니, 그들은 두 가지 다른 예입니다. 첫 번째 예제는 sarath가 long을 필요로한다면 "url 매개 변수"에 대한 것이므로 두 번째 예제는 url 매개 변수에 적합해야한다고 생각하기 때문에 의심 스럽습니다. –

3

joda 시간 개체를 문자열로 포맷 한 다음 long으로 변환하십시오.

당신은 당신이

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss"); 
String formatted = formatter.format(datetime); 
long lvalue = Long.parseLong(formatted).longValue(); 
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 
관련 문제