将字符串日期转换为毫秒

时间:2015-03-10 00:06:00

标签: android

如何将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;
}

2 个答案:

答案 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