我想在Android中以编程方式获取从一个月初到现在的经过时间。
最好使用Calendar.getInstance()。
例如今天是12/10/2018。因此以毫秒为单位的持续时间将为2018年12月1日至2018年12月10日
答案 0 :(得分:2)
要检索月初:
val cal = Calendar.getInstance()
cal.set(Calendar.HOUR_OF_DAY, 0)
cal.clear(Calendar.MINUTE)
cal.clear(Calendar.SECOND)
cal.clear(Calendar.MILLISECOND)
cal.set(Calendar.DAY_OF_MONTH, 1)
然后以毫秒为单位计算经过时间:
val current = Calendar.getInstance()
val timePassedMilliseconds=current.timeInMillis-cal.timeInMillis
答案 1 :(得分:0)
您是否在创建新日历并填充日历时遇到问题?您可以创建一个空的字段,然后只填充您感兴趣的字段。
Calendar now = Calendar.getInstance();
Calendar startOfMonth = new GregorianCalendar();
calendar.set(Calendar.DAY_OF_MONTH, 1); //first day of month
calendar.set(Calendar.MONTH, now.get(Calendar.MONTH));
calendar.set(Calendar.YEAR, now.get(Calendar.YEAR);
timeElapsed = now.getTimeInMillis() - startOfMonth.getTimeInMillis() ;
答案 2 :(得分:0)
您可以使用calendar.set(year,month,1,0,0,0);
来获取每月第一天的时间戳。
Calendar calendar = Calendar.getInstance();
Date d = new Date(1544371200000L); //12/10/2018
calendar.setTime(d);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
calendar.set(year,month,1,0,0,0);
Date firstDayOfMonth = calendar.getTime();
long duration = d.getTime() - firstDayOfMonth.getTime();