8

有没有办法在java中将给定的Date字符串转换为MillisecondsEpoch长格式)?示例:我想转换

public static final String date = "04/28/2016"; 

以毫秒(纪元)为单位。

4

4 回答 4

14

Date 类的 getTime() 方法返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

于 2016-04-21T14:30:23.157 回答
8

您可以使用 java.text.SimpleDateFormat 将其简单地解析为 java.util.Date 并调用它的 getTime() 函数。它将返回自 1970 年 1 月 1 日以来的毫秒数。

public static final String strDate = "04/28/2016";
try {
    Long millis = new SimpleDateFormat("MM/dd/yyyy").parse(strDate).getTime();
} catch (ParseException e) {
    e.printStackTrace();
}
于 2016-04-21T14:44:12.450 回答
1

您可以创建一个Calendar对象,然后将其日期设置为您想要的日期,然后调用其getTimeInMillis()方法。

Calendar c = new Calendar.getInstance();
c.set(2016, 3, 28);
c.getTimeInMillis();

如果你想String直接转换成日期,你可以试试这个:

String date = "4/28/2016";
String[] dateSplit = date.split("/");
c.set(Integer.valueOf(dateSplit[2]), Integer.valueOf(dateSplit[0]) - 1, Integer.valueOf(dateSplit[1]));
c.getTimeInMillis();
于 2016-04-21T14:29:30.707 回答
0

您将需要使用 Calendar 实例从纪元获取毫秒

try {
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    java.util.Date d = sdf.parse("04/28/2016");
    /*
     * Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.
     */
    System.out.println(d.getTime());
    //OR
    Calendar cal = Calendar.getInstance();
    cal.set(2016, 3, 28);
    //the current time as UTC milliseconds from the epoch.
    System.out.println(cal.getTimeInMillis());
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2016-04-21T14:40:27.633 回答