Java中获取去年最后一天的日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中获取去年最后一天的日期相关的知识,希望对你有一定的参考价值。
String olddateTime = String.valueOf(Integer.parseInt(dateTime.substring(0, 4))-1)+"-12-31";
dateTime 是输入的日期 格式是String 如:2018-12-05
我的思路是 先将获取到的字符串截取前4个字符,也就是2018,然后强转为整型 -1 ,就是2017(也就是去年)然后再转为String型,再拼接 “-12-31”,就成了 2017-12-31(也就是去年最后一天的日期),我想问问大佬们有没有更简单的写法,我这写的不美观,求教
问题是获取到的日期是 String 格式的
然后我要的是 去年最后一天的日期 我截取之后要转发整型才能减 1 也就是去年的年份(String能直接运算??) 之后,要转换成String型的才能 拼接
因为我的这个日期格式不是 Date型 而是String 的 所以还需要转换
看错,String.valueOf多余,因为 数字 + 字符串的结果就是个字符串。java自带的功能。
参考技术B import java.text.SimpleDateFormat;import java.util.Calendar;
import java.util.Locale;
public class Test
public static void main(String[] args) throws Exception
String dt="2018-12-05";
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
Calendar c=Calendar.getInstance(Locale.CHINA);
c.setTime(f.parse(dt));
c.add(Calendar.YEAR, -1);//拨回去年
c.set(Calendar.DAY_OF_YEAR,c.getActualMaximum(Calendar.DAY_OF_YEAR));//最后一天
System.out.println("去年最后一天:"+f.format(c.getTime()));
去年最后一天:2017-12-31
历法用日历做。借题深化熟悉日历..
java获取每个月最后一天的日期
参考技术A import java.util.Calendar;import java.util.Date;
public class Test
public static void main(String args[])
System.out.println(getLastDayOfMonth(new Date()));
public static Date getLastDayOfMonth(Date sDate1)
Calendar cDay1 = Calendar.getInstance();
cDay1.setTime(sDate1);
final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);
Date lastDate = cDay1.getTime();
lastDate.setDate(lastDay);
return lastDate;
本回答被提问者采纳
以上是关于Java中获取去年最后一天的日期的主要内容,如果未能解决你的问题,请参考以下文章
java怎么得到某个月的第一天和最后一天的日期,以2012-06为例
pandas通过DatetimeProperties对象获取日期对象是否是所在月份的最后一天(is month end)筛选dataframe数据中日期对象是所在月份最后一天的数据行