gpt4 book ai didi

java - 在Android中获取当月的最后一个时间戳

转载 作者:搜寻专家 更新时间:2023-11-01 08:32:35 24 4
gpt4 key购买 nike

我试图在 Android 上获取当年当月的最后一个时间戳,所以我找到了

“日历”实例的

getActualMaximum 很有用,但是当我试图弄清楚 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();
}
}

关于java - 在Android中获取当月的最后一个时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com