0

我正在尝试获取今天日期的纪元时间。但坚持ParseException格式化日期。

片段:-

SimpleDateFormat df = new SimpleDateFormat("dd/mm/yyyy");
String str = df.format(Calendar.getInstance().getTime());
Date date = df.parse(str);
long epoch = date.getTime();
Log.i("Epoch" , String,valueOf(epoch));

如何获得今天的纪元时间?

4

2 回答 2

3

如果您只对自 1970 年 1 月 1 日 UTC 以来的当前时间(以毫秒为单位)感兴趣,请使用System.currentTimeMillis()见 javadoc。在此过程中无需格式化和解析字符串。

要从中获取 unix 纪元时间戳,请将其除以 1000 转换为秒。

根据评论和您自己的回答,您似乎对某个时区的纪元时间戳感兴趣。为此使用 a Calendar,也无需在此处格式化和解析字符串:

Calendar c = Calendar.getInstance(); // today
c.setTimeZone(TimeZone.getTimeZone("UTC")); // comment out for local system current timezone
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
c.set(Calendar.AM_PM, Calendar.AM);
long millistamp = c.getTimeInMillis();
long unixstamp = millistamp / 1000;
于 2014-03-06T10:38:55.270 回答
1

要获得今天的大纪元时间:-

 SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
 String _date = df.format(Calendar.getInstance().getTime());
 Long notificationID = strDateToUnixTimestamp(_date); //Gives Today Epoch Time.

 private static long strDateToUnixTimestamp(String dt) {
    DateFormat formatter;
    Date date = null;
    long unixtime;
    formatter = new SimpleDateFormat("dd/MM/yy");
    try {
        date = formatter.parse(dt);
    } catch (ParseException ex) {

        ex.printStackTrace();
    }
    unixtime = date.getTime() / 1000L;
    return unixtime;
}

查看当前米利斯时间与今天米利斯时间 [日期 00:00:00] 之间的差异。

Log.i("Notification ID", String.valueOf(notificationID) + ": "+ System.currentTimeMillis()/1000);

发布 SO 和它的答案,因为我用谷歌搜索了几个小时并找到了我正在寻找的东西。希望它可能对其他人有所帮助。

于 2014-03-06T10:38:16.563 回答