2014-04-13 5 views
0

나는이 쿼리를 사용하여 SQLite는 데이터베이스에서 테이블을 만들었습니다편집 : Date 개체의 날짜 형식을 변경하려면 어떻게해야합니까?

create table table_name(
id integer primary key autoincrement, 
name varchar(450) not null, 
date date) 

을 그리고 나는이 코드를 통해 값을 삽입하고 있습니다 (질문에 대한 간체) :

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); 
Date tmpDate = dateFormat.parse("2014/01/12"); 
values.put(columnKey, tmpDate.toString()); 
db.insert("table_name", null, values); 

와 '행의 값을 다시 얻기 후에

java.text.ParseException: Unparseable date: "Sun Jan 12 00:00:00 EST 2014" (at offset 0) 

나는 형식 YYYY/MM은/DD로 날짜를 저장하는 경우는이 같은 형식으로 저장해서는 안 : 데이터베이스에서 날짜 '이 오류를 받고 있어요? 조언을 제공해 주셔서 감사합니다.

편집

: 나는 아무 생각이 왜 그러나이 후 :

DatePicker tmpDatePicker = (DatePicker) dateDialog.findViewById(R.id.date_picker); 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
Date tmpDate = dateForma.parse("2014-01.12"); 
tmpDate.toString(); 

출력 0시 0분 0초 내가 그것을 어떻게 EST을 변경할 수 2014 일 년 1 월 12?

+0

나는 getLong 사용 후 그 오류를 없애에서 getString insted했지만 여전히 나는 형식을 변경할 수 없습니다. – mlethys

답변

1

Your own answer이 정확합니다.

하지만 난 java.util.Date, .Calendar 및 java.text.SimpleDateFormat에 클래스 악명 귀찮은 것을 말해야한다. 대부분의 사람들은 그들을 피하기 위해 기꺼이 대신 Joda-Time (또는 Java 8에서는 새로운 java.time 패키지를 사용하지만 Android는 사용하지 않습니다.)

Joda-Time 2.3은 시간 만 또는 시간대없이 날짜 만 사용하는 LocalDate 클래스를 제공합니다. 기본적으로

Joda 타임은 당신이 찾는 분명히 무엇인지, 날짜 - 시간 값의 문자열 표현의 서식을 ISO 8601 표준 방법을 사용합니다. 필요한 경우 Joda-Time은 지역화 된 또는 사용자 정의 형식도 사용할 수 있습니다.

String input = "2014-01-12"; 
LocalDate localDate = new LocalDate(input); 
String output = localDate.toString(); 

다른 클래스/프레임 워크에서 필요에 따라 java.util.Date와 변환 할 수 있습니다.

java.util.Date date = localDate.toDate(); 
String dateAsString = date.toString(); 

실행 ...

input: 2014-01-12 
output: 2014-01-12 
dateAsString: Sun Jan 12 00:00:00 PST 2014 
+0

@up : 덕분에 많은 브로! 나는 그것을 밖으로 시도하고 완벽하게 작동합니다. 그냥 stackoverflow 사랑 같은 대답 :) – mlethys

1

나는 그것을 알아 냈다. toString() 메소드는 형식 I이 사용하는 데 필요한 SimpleDateFormat의 생성자 패턴에 주어진 같음 얻으려면 일 월 12 동부 표준시 00시 00분 0초 2014 을 형식을 설정합니다

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
Date tmpDate = dateFormat.parse("2014-01-12"); 
dateFormat.format(tmpDate); 

을 그리고 출력 2014년 1월 12일입니다

관련 문제