2014-09-30 50 views
6

我需要將格式爲「dd/mm/yyyy」的字符串轉換爲長類型。爲了將值傳遞給android中的calendarProvider。Android/Java轉換字符串日期到長類型

目前我有:

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但我有得到正確的類型背部問題試過。任何幫助將非常感激。

+0

顯示您使用'SimpleDateFormat'的嘗試 - 這是要走的正確途徑。 – 2014-09-30 10:59:14

回答

18

您可以使用以下代碼從格式爲「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(); 
} 
+0

非常感謝。 – 2014-09-30 11:47:11

+0

@Ken Wolf是否可以將兩個單獨的字符串,一個日期字符串和一個時間字符串合併爲一個字符串(例如,「2014年9月30日」和「下午10:00」轉換爲「2014年9月30日10: 00 PM「從合併的字符串中獲取長整型值?日期字符串格式爲」dd/MM/yyyy「,時間字符串格式爲」h:mm a「 – AJW 2016-10-10 13:48:13

+1

是的,這是可能的 - 您只是組合2個字符串你需要確保兩個字符串都遵循正確的格式 – 2016-10-10 13:50:50

2

使用這樣的代碼

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();