2011-04-11 5 views
0

안녕하세요, 모두 안녕하세요, 날짜와 시간을 밀리 초로 변환하는 데 문제가 있습니다. 아무도 코드에 오류가 없지만 밀리 초 단위로 잘못된 날짜와 시간을 반환합니다.android returing timestamp in milliseconds

2011-03-01 17:55:15 을하고 나에게이 번호 제공 :

이 변환 메신저 날짜입니다 -679019461843345152

를이 사용하여 코드 메신저입니다 :

public long getDate(String s){ 
     //this is returning a timestamp but the wrong ones!!! 

     String[] formats = new String[] { 
       // "yyyy-MM-dd", 
       "yyyy-MM-dd HH:mm:ss" 
       // "yyyy-MM-dd HH:mmZ", 
       //"yyyy-MM-dd HH:mm:ss.SSSZ", 
      }; 

     SimpleDateFormat sdf=null; 
     String st; 

     for (String format : formats) { 
       sdf = new SimpleDateFormat(format, Locale.US); 
       //System.err.format("%30s %s\n", format, sdf.format(new Date(0))); 

       sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
       st = new String(sdf.format(new Date(0))); 
       System.err.format(format, st); 
     } 


     // compute nanoseconds from y, m... 

     //return that number 
     Calendar c = Calendar.getInstance(); 
      c.set(sdf.YEAR_FIELD, sdf.MONTH_FIELD, sdf.DATE_FIELD, sdf.HOUR0_FIELD, sdf.MINUTE_FIELD, sdf.SECOND_FIELD); 
      return c.getTimeInMillis() * 1000000; 

    } 

답변

2

라인 c.set 어떤 센을하지 않습니다 SE는 :

 Calendar c = Calendar.getInstance(); 
     try { 
      dt = sdf.parse("2011-03-01 17:55:15"); 
     } catch (ParseException e) { 
      System.err.println("There's an error in the Date!"); 
      return null; 
     } 
     Date dt = sdf.parse("2011-03-01 17:55:15"); 
     c.setTime(dt); 
     System.out.println(c.getTimeInMillis() * 1000000); 
     System.out.println(dt.toString()); 

출력 :

1299002115000000000 
Tue Mar 01 12:55:15 EST 2011 

이 BTW, 당신은 결코 매개 변수들 액세스하고

c.set(sdf.YEAR_FIELD, sdf.MONTH_FIELD, sdf.DATE_FIELD, sdf.HOUR0_FIELD, sdf.MINUTE_FIELD, sdf.SECOND_FIELD); 

이 당신에게 아이디어를 줄 것이다.

+0

고마워요.하지만 작은 문제가 생겼어요. 내 코드에 어떤 코드를 보냈는지 알려주려고했는데, 오류가 있다는 것을 보여주었습니다.이 날짜에 처리되지 않은 예외 유형 ParseException이 있습니다. dt = sdf.parse ( – moe

+0

) 일반적으로 텍스트를 파싱하는 함수는 예기치 않은 문자열을 처리하기 위해 try-catch 블록 내에 있어야합니다. 예를 보여주기 위해 답변을 업데이트하겠습니다. – Aleadam

+0

나는 당신이 얻은 것과 같은 결과를 얻었고 당신의 도움을 많이 주셔서 감사합니다.하지만 마지막 질문은 1 : 17:55:15이고, 얻은 결과는 내가 얻은 것과 같습니다. 12:55 : 15 .... ???? – moe