看你描述的不是很清楚,看看下面是不是你想要的。
import javatextDateFormat;import javatextSimpleDateFormat;
import javautilCalendar;
import javautilDate;
public class DateUtils {
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) {
Date now = new Date();
Systemoutprintln("当前日期:" + DATE_FORMATformat(now));
Date newDate = stepMonth(now, -13);
Systemoutprintln("当前时间前13个月的日期:" + DATE_FORMATformat(newDate));
}
/
在给定的日期加上或减去指定月份后的日期
@param sourceDate 原始时间
@param month 要调整的月份,向前为负数,向后为正数
@return
/
public static Date stepMonth(Date sourceDate, int month) {
Calendar c = CalendargetInstance();
csetTime(sourceDate);
cadd(CalendarMONTH, month);
return cgetTime();
}
}
比如今天是2009年3月24号,
那本月第一天就是: 今天的年 + 月 + 01
本月的最后一天就是:(本月第一天)加1月减1天
明白了?
日期的加减可以用类Calendar实现
本月的开始时间,就是年朋+01
结束时间,简单一点就是下月1号减1天
import javatextSimpleDateFormat;
import javautilDate;
public class Test {
/
@param args
/
public static void main(String[] args) {
// String str="<font face='Arial,Serif',size='+2' color='red'";
Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");
String str=dfformat(date);
String str1=strsubstring(4, 6);
Systemoutprintln(str1);
}
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//获取前月的第一天
Calendar cal_1=CalendargetInstance();//获取当前日期
cal_1add(CalendarMONTH, -1);
cal_1set(CalendarDAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
firstDay = formatformat(cal_1getTime());
Systemoutprintln("-----1------firstDay:"+firstDay);
//获取前月的最后一天
Calendar cale = CalendargetInstance();
caleset(CalendarDAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
lastDay = formatformat(calegetTime());
Systemoutprintln("-----2------lastDay:"+lastDay);
//获取当前月第一天:
Calendar c = CalendargetInstance();
cadd(CalendarMONTH, 0);
cset(CalendarDAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = formatformat(cgetTime());
Systemoutprintln("===============first:"+first);
//获取当前月最后一天
Calendar ca = CalendargetInstance();
caset(CalendarDAY_OF_MONTH, cagetActualMaximum(CalendarDAY_OF_MONTH));
String last = formatformat(cagetTime());
Systemoutprintln("===============last:"+last);
我觉得模糊查询的方法不错,楼上的可能有点不准确可以写成like 2008-1-%的形式。
或者用你的方法的话可以使用下面的方法获得最大天数和最小天数。自己重新拼一下字符串。其中2008和3都能在你已知的字符串中解析出来。最后默认写0就行。
Calendar c = CalendargetInstance();
cset(2008, 3, 0);
int maxDate = cgetActualMaximum(CalendarDATE);
int minDate = cgetActualMinimum(CalendarDATE);
以上就是关于java中获取当前时间的前几个月全部的内容,包括:java中获取当前时间的前几个月、如何在java中得到本月的开始和结束时间(天)、如何在java中获得当前系统时间的月份,并以“01”这样的格式输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)