如何将String dd / MM / yyyy转换为毫秒?
我输入03/09/15并且我得到号码“ - ”-61651 ......是正常的吗?
public Long Func1(String givenDateString){
//String givenDateString = "Tue Apr 23 16:08:28 GMT+05:30 2013";
//SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
long timeInMilliseconds=0;
try {
Date mDate = sdf.parse(givenDateString);
timeInMilliseconds = mDate.getTime();
System.out.println("Date in milli :: " + timeInMilliseconds);
} catch (ParseException e) {
e.printStackTrace();
}
return timeInMilliseconds;
}
答案 0 :(得分:1)
您的功能正在按预期工作 - 您只是给它提供了错误的数据。您将格式指定为dd/MM/yyyy
(强调yyyy
),但您将为其指定2位数年份。这将被解释为文字年15
。由于毫秒值是自1970年1月1日以来的时间,因此您预计第15年将出现显着的负值。
修改您的格式以使用2位数年份(dd/MM/yy
)或更优选地传入03/09/2015
。
答案 1 :(得分:0)
Date.getTime()
方法返回1970年1月1日午夜到指定日期(Unix时间)之间的毫秒数。
http://en.wikipedia.org/wiki/Unix_time
= - = - = - = - = Edited = - = - = - = - =
如果您只需要毫秒,则可以使用Date.getTime()%1000
。