2014-09-30 62 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();