求java代码获取上个月最后一天最后一秒的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求java代码获取上个月最后一天最后一秒的时间相关的知识,希望对你有一定的参考价值。

java 当前时间是2011-07-01 00:00:00 怎么得到上个月最后一天最后一秒 即2011-06-30 23:59:59 ,求代码


用这个方法吧:入参,可以是指定的日期,  返回 制定日期上个月最后一毫秒的时间点

public static Date getLastMonthEndTime(Date date)
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.MONTH, -1);
        c.set(Calendar.DAY_OF_MONTH,c.getActualMaximum(Calendar.DAY_OF_MONTH));//设置为最后一天
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        c.set(Calendar.MILLISECOND, 999);
        return c.getTime();
    

参考技术A import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test

public static void main(String[] args)
//获取当前时间
Calendar cal = Calendar.getInstance();
//调到上个月
cal.add(Calendar.MONTH, -1);
//得到一个月最最后一天日期(31/30/29/28)
int MaxDay=cal.getMaximum(Calendar.DAY_OF_MONTH);
//按你的要求设置时间
cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(cal.getTime()));

追问

如果跨年了呢

追答

跨年同样可以,Calendar这个类很强大。会自动识别的,上面代码在有点问题,int MaxDay=cal.getMaximum(Calendar.DAY_OF_MONTH);被我改了一下

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test

public static void main(String[] args)
//获取当前时间
Calendar cal = Calendar.getInstance();
//下面可以设置月份,注:月份设置要减1,所以设置1月就是1-1,设置2月就是2-1,如此类推
cal.set(Calendar.MONTH, 1-1);
//调到上个月
cal.add(Calendar.MONTH, -1);
//得到一个月最最后一天日期(31/30/29/28)
int MaxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//按你的要求设置时间
cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(cal.getTime()));

参考技术B public String getLastMonthDay()
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
// int day1 = cal.getActualMinimum(Calendar.DAY_OF_MONTH);//起始天数
int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 结束天数

System.out.println("###last month:" + month);
if (month == 0)
year = cal.get(Calendar.YEAR) - 1;
month = 12;
else
year = cal.get(Calendar.YEAR);

String endDay = year + "-" + month + "-" + day;
return endDay+" 23:59:59"
本回答被提问者采纳

Java获取本月最后一天问题

我看网上Calendar这个类的方法可以获取本月的最后一天。但是这个方法会自动帮我判断闰年问题么?

获取最后一天的时间,就用Calendar这个类的方法,这个方法会自动判断闰年问题的,api是根据日历来写的,代码如下:
public static void main(String[] args)
// 获取Calendar
Calendar calendar = Calendar.getInstance();
// 设置时间,当前时间不用设置
// calendar.setTime(new Date());
// 设置日期为本月最大日期
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));

// 打印
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(format.format(calendar.getTime()));

参考技术A public static void main(String[] args)
// 获取Calendar
Calendar calendar = Calendar.getInstance();
// 设置时间,当前时间不用设置
// calendar.setTime(new Date());
// 设置日期为本月最大日期
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));

// 打印
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(format.format(calendar.getTime()));


会自动判断闰年本回答被提问者采纳
参考技术B 基本上很好用

/**
* 得到本月的最后一天
*
* @return
*/
public static String getMonthLastDay()
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar
.getActualMaximum(Calendar.DAY_OF_MONTH));
return dateFormat("yyyy-MM-dd", calendar.getTime());

非常的方便,自己写还需要写一堆!!!
使用这个只需要很简短的几句就完成了!!!
参考技术C 会的 参考技术D 自己写写看呗。 把自己电脑调到闰年的2月。

好多东西都是自己敲出来印象才深刻, 不要总是依赖别人或者文档的答案。

就算是站在巨人的肩膀上,首先要做的也是先攀登到巨人的肩上。

以上是关于求java代码获取上个月最后一天最后一秒的时间的主要内容,如果未能解决你的问题,请参考以下文章

js代码实现,如何获取当前月份的最后一天

java中如何获取当前月最后一天

Java中获取去年最后一天的日期

js如何获取上个月第一天和最后一天

oracle sql 最近5个季度的最后一天

js 怎么求三个月前第一天,和本月最后一天要字符串(YYYY-MM-DD)格式