2013-10-07 1 views
1

TextView에 "Locale"형식의 날짜가 있습니다. 이제 sqlite db에 삽입해야합니다. SQLite에 적합한 형식을 어떻게 변환합니까? 이 내 내용입니다Date into SQLite

cv.put(MyTable.DATE, mDate.getText().toString()); 

답변

0

난 당신이 기계가 읽을 수있는 코드에 대한 텍스트 형식으로 문자열을 저장하는 것이 좋습니다 값. http://developer.android.com/reference/java/text/SimpleDateFormat.html을 참조하십시오. SimpleDateFormat을 사용하면 날짜와 문자열 사이를 이동할 수 있습니다. 내부적으로 이진 형식으로 날짜를 전달해야한다는 일부 문서를 보았습니다. 나는 동의하지 않는 경향이있다. 텍스트 형식으로 날짜를 저장하는 경우 (형식을 알고있는 경우) 더 간단하고 안전합니다. 단지 상점을 당신이 Locale를 저장해야하는 경우, 또한

mDate = new Date(cv.getAsLong(MyTable.DATA)); 

: 다음

cv.put(MyTable.DATA, mDate.getTime()); 

long로 검색하고 다음과 같은 생성자를 사용

+0

당신이 인간이 읽을 수있는, 기계가 읽을 수없는 말을하려고 생각 :) 나는 DB가 응용 프로그램이 선택할 수있는 데이터를 저장하는 데 집중할 수 있도록 오랜 시간을 저장 팬입니다 나중에 여러 형식을 표시하고 형식을 변경하십시오. – Kazuki

+0

미안하지만 잘 설명하지 못했습니다! 삽입하는 동안 SQLite "yyyy-mm-dd"가 지원하는 형식으로 "로컬"형식의 텍스트 뷰를 변환해야합니다. (나는 날짜 '필드'텍스트 'sqlite를 사용하여) 덕분에 – user2856560

1

당신은 long로 삽입 할 수 있습니다 문자열로 별도로 :

cv.put(MyTable.LOCALE, mLocale.getLanguage()); 

나중에 얻으십시오 :

mLocale = new Locale(cv.getAsString(MyTable.LOCALE)); 
+0

내 날짜 필드는 텍스트이므로, 작동하지 않으면 --- cv.put (MyTable.DATA, mDate.getTime()); – user2856560

+0

@ user2856560 'MyTable.DATA'필드 란 무엇입니까? – Phil

+0

은 DATE 필드가있는 테이블의 이름입니다 (TEXT로 선언 된 Helper 클래스에 있음) – user2856560