android – 获取时间戳一天的开始

前端之家收集整理的这篇文章主要介绍了android – 获取时间戳一天的开始前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用unix时间戳存储数据库中的时间/日期.
我想要在某一天获取所有的实例,因此我需要计算一天中的时间戳来查询数据库.

我通过将日期/时间的日期/年份的值从日期对象传递给mktime,并将时间和分钟设置为零,从而在PHP中做了类似的事情.在java / android中似乎没有类似的功能(用于获取特定部分日期的函数已被弃用)

任何人都可以给出一些指导吗?谢谢

编辑:

好吧,我意识到这可能会起作用:

public static int startOfDay(Timestamp time) {
        Calendar cal = dateToCalendar(new Date(time.getTime()));
        cal.add(Calendar.HOUR_OF_DAY,-Calendar.HOUR_OF_DAY);
        cal.add(Calendar.MINUTE,-Calendar.MINUTE);
        cal.add(Calendar.SECOND,-Calendar.SECOND);
        Log.i("Time",cal.getTime().toString());        
        return (int) cal.getTimeInMillis()/1000;
}

但是当我跑了这个时候我得到:

星期六12月15日01:24:00 GMT 2012

秒是正确的,但时间和分钟是错误的?

解决方法

处理时间时,您应该始终考虑时区.您的数据库时间戳应始终存储在一个时区(例如UTC)中.您的计算应该考虑用户可以在不同的时区,并且他们可以更改时区.

如果要计算用户当前在其手机中设置的时区的开始日期.创建日历实例:

Calendar cal = Calendar.getInstance();

获取特定时区的实例,请执行以下操作:

// use UTC time zone
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

然后设置一天的开始:

cal.setTime(time); // compute start of the day for the timestamp
cal.set(Calendar.HOUR_OF_DAY,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
原文链接:https://www.f2er.com/android/311861.html

猜你在找的Android相关文章