今天的纪元时间与当前时间无关

时间:2014-03-06 10:36:38

标签: java android datetime time java-time

我想要获得今天约会的纪元时间。但在格式化日期坚持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));

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

2 个答案:

答案 0 :(得分:3)

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

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

根据评论和您自己的回答,您似乎对某个时区的纪元时间戳感兴趣。请使用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;

答案 1 :(得分: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;
}

要查看Millis当前时间与Millis当前时间之间的差异[日期00:00:00]。

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

发布SO和它的回答,因为我用Google搜索了几个小时,找到了我想要的东西。希望它对其他人有所帮助。