我想要获得今天约会的纪元时间。但在格式化日期坚持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));
如何才能获得今天的纪元时间?
答案 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搜索了几个小时,找到了我想要的东西。希望它对其他人有所帮助。