web-dev-qa-db-ja.com

Android / Java文字列の日付を長い型に変換する

「dd/mm/yyyy」形式の文字列をlong型に変換する必要があります。 AndroidのcalendarProviderに値を渡すため。

現在私は持っています:

Calendar calendar = Calendar.getInstance();
long startEndDate = 0;
Calendar currentDateInfo = Calendar.getInstance();
currentDateInfo.set(calendar.get(Calendar.YEAR), calendar.SEPTEMBER, calendar.get(Calendar.DAY_OF_MONTH));
startEndDate = currentDateInfo.getTimeInMillis();

私は欲しい:

long startDate = *Some sort of conversion* EditText.getText();

SimpleDateFormatを使用してみましたが、正しいタイプを取り戻すのに問題があります。どんな助けでも大歓迎です。

6
David Finder

次のコードを使用して、「dd/mm/yyyy」形式の文字列日付から長い値(1970年1月1日からのミリ秒、00:00:00 GMT)を取得できます。

try {
    String dateString = "30/09/2014";
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date = sdf.parse(dateString);

    long startDate = date.getTime();

} catch (ParseException e) {
    e.printStackTrace();
}
26
Ken Wolf

このようにあなたのコードを使用してください

String[] dateArray = dateString.split("-");

int year = Integer.parseInt(dateArray[0]);
int month = Integer.parseInt(dateArray[1]);
int date = Integer.parseInt(dateArray[2]);

GregorianCalendar gc = new GregorianCalendar(year,month,date);
long timeStamp = gc.getTimeInMillies();
2
vinayak mishra