繁体   English   中英

获取Android中当月的上一个时间戳

[英]Get last timestamp of current month in Android

我试图在Android上获取一年中当前月份的最后一个时间戳,所以我发现

getActualMaximum “ calendar”实例很有用,但是当我试图弄清楚什么是2016年8月的最后一个时间戳时,我得到的天数错误为30,而不是31

public static long getLastTimeStampOfCurrentMonth(int month, int year) {
    Calendar cal = Calendar.getInstance();
    cal.set(year,month, cal.getActualMaximum(Calendar.DAY_OF_MONTH), 23,59,59);
    return cal.getTimeInMillis();
}

当我花费下个月的最小值减去一个时,我找到了一种解决方案:

public static long getLastTimeStampOfCurrentMonth(int month, int year) {
    Calendar cal = Calendar.getInstance();
    cal.set(year,month, cal.getActualMinimum(Calendar.DAY_OF_MONTH)-1, 23,59,59);
    return cal.getTimeInMillis();
}

我很好奇造成问题的原因...(我可以找到一个错误)

import java.util.Calendar;


public class test_cal {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(getLastTimeStampOfCurrentMonth(Calendar.AUGUST,2016));
    }
    public static long getLastTimeStampOfCurrentMonth(int month, int year) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);//leap year 29 Feb;)
        cal.set(Calendar.MONTH, month);
        cal.set(year,month, cal.getActualMaximum(Calendar.DAY_OF_MONTH), cal.getActualMaximum(Calendar.HOUR_OF_DAY),cal.getActualMaximum(Calendar.MINUTE),cal.getActualMaximum(Calendar.SECOND));
        cal.set(Calendar.MILLISECOND,cal.getActualMaximum(Calendar.MILLISECOND));
        return cal.getTimeInMillis();
    }
}

使用此方法获取当月最后一天的时间戳...

 private long getLastTimeStampOfCurrentMonth() {
     Calendar calendar = Calendar.getInstance();
     // passing month-1 because 0-->jan, 1-->feb... 11-->dec
     calendar.set(Calendar.getInstance().get((Calendar.YEAR)), Calendar.getInstance().get(Calendar.DAY_OF_MONTH), 1);
     calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
     Date date = calendar.getTime();
     return date.getTime();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM