String startDateStr = "" ;
String endDateStr = "" ;
TimeZone tzES2 = TimeZone.getTimeZone("GMT+8");
Calendar calES2 = Calendar.getInstance(tzES2);
Calendar ca = Calendar.getInstance();
Date now = ca.getTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd" ) ;
dateFormat.setCalendar(calES2) ;
String s = dateFormat.format(now) ;//2013/01/03
String[] sp = s.split("/") ; // 2013 01 03
sp[sp.length-1] = "01" ;
System.out.println(Integer.parseInt(sp[1]));
startDateStr = sp[0] + "/" + sp[1] + "/" + sp[2] ;
List list = new ArrayList() ;
sp[sp.length-1] = "31" ;
endDateStr = sp[0] + "/" + sp[1] + "/" + sp[2];
System.out.println(endDateStr);我这段程序可以获取到 当月 1号到 31号 的数据 就是 2013年1月1日 到2013年1月31日
如果修改它的月份,让它能指向上一个月的呢。就是 2012年12月1日 到 2012年12月31日
最好有代码解释。谢谢各位!javadatecalendarstringtimezone
String endDateStr = "" ;
TimeZone tzES2 = TimeZone.getTimeZone("GMT+8");
Calendar calES2 = Calendar.getInstance(tzES2);
Calendar ca = Calendar.getInstance();
Date now = ca.getTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd" ) ;
dateFormat.setCalendar(calES2) ;
String s = dateFormat.format(now) ;//2013/01/03
String[] sp = s.split("/") ; // 2013 01 03
sp[sp.length-1] = "01" ;
System.out.println(Integer.parseInt(sp[1]));
startDateStr = sp[0] + "/" + sp[1] + "/" + sp[2] ;
List list = new ArrayList() ;
sp[sp.length-1] = "31" ;
endDateStr = sp[0] + "/" + sp[1] + "/" + sp[2];
System.out.println(endDateStr);我这段程序可以获取到 当月 1号到 31号 的数据 就是 2013年1月1日 到2013年1月31日
如果修改它的月份,让它能指向上一个月的呢。就是 2012年12月1日 到 2012年12月31日
最好有代码解释。谢谢各位!javadatecalendarstringtimezone
解决方案 »
- java求救!!!
- 大家如何选择自己的JAVA发展路线?
- 关于Graphics的一个问题
- 有谁知道IDE容器中动态添加的控件的大小可以用鼠标来拖动如何实现?
- RSA问题
- 请问我下载的jakarta-oro-2.0.8包放在什么位置?才可以用阿?急!!!
- 内存的问题,请大家帮我解决一下
- 如何用javascript在密码输入框中将输入的密码变成*号?在线等待!
- 请问用JBuilder编的.class文件,可不可以在Linux下面使用?
- 请问如何在JTextPane里实现画表格的功能,就想word那样!!!!
- 请教下动态代理的作用
- java核心技术 原书第八十页是这么写的 但是第二个for循环数组越界。 菜鸟一枚,请指教,难道是原书错了,求改正
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
c.set(Calendar.YEAR, 2013);
c.set(Calendar.MONTH, 1);
c.set(Calendar.DATE, 3);
c.add(Calendar.MONTH, -2);
System.out.println(sdf.format(c.getTime()));
}
String endDateStr = "";
TimeZone tzES2 = TimeZone.getTimeZone("GMT+8");
Calendar calES2 = Calendar.getInstance(tzES2);
Calendar ca = Calendar.getInstance();
Date now = ca.getTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
dateFormat.setCalendar(calES2); ca.set(Calendar.DATE, ca.getActualMinimum(Calendar.DAY_OF_MONTH));//设置当前日期为当前月的第一天
now = ca.getTime();
startDateStr = dateFormat.format(now); ca.set(Calendar.DATE, ca.getActualMaximum(Calendar.DAY_OF_MONTH));//设置当前日期为当前月的最后一天
now = ca.getTime();
endDateStr = dateFormat.format(now); System.out.println(startDateStr);
System.out.println(endDateStr);
ca.add(Calendar.MONTH, -1);//设置日期为当前日期加上-1个月(即减去1个月)的日期。后面的操作同上
import java.util.Calendar;public class Temp { /**
* @param args
*/
public static void main(String[] args) { System.out.println(getMonthStartAndEnd("2012/01/03", 0));
System.out.println(getMonthStartAndEnd("2012/01/03", -1));
System.out.println(getMonthStartAndEnd("2012/01/03", 1));
System.out.println(getMonthStartAndEnd("2012/01/03", -2));
System.out.println(getMonthStartAndEnd("2012/01/03", 2));
}
/**
* 所在日期前后偏移几个月的第一天和最后一天
* @param date 所在日期
* @param offset 偏移量(例如:当月0,下月1,上月-1)
* @return 当月的第一天和最后一天
*/
private static String getMonthStartAndEnd(String date, int offset) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.valueOf(date.split("/")[0]));
cal.set(Calendar.MONTH, Integer.valueOf(date.split("/")[1]) - 1);
cal.set(Calendar.DATE, 1);
cal.add(Calendar.MONTH, offset + 1);
cal.add(Calendar.DATE, -1);
String end = sdf.format(cal.getTime());
cal.set(Calendar.DATE, 1);
String start = sdf.format(cal.getTime());
return start + " ~ " + end;
}
}
com.qherp.util.FastDate fdate = new com.qherp.util.FastDate(year_month
+ "-01");
java.util.Calendar cal = java.util.GregorianCalendar.getInstance();
cal.setTime(fdate);
cal.add(Calendar.MONTH, amount);
String result = com.qherp.util.ErpUtil.toDate("yyyy-MM", cal.getTime());
return result;
}
/**
* 计算两个日期之间相差的月数
* @param date1 此为开始日期
* @param date2 此为结束日期
* @return
*/ private int sagetMonths(Date date1, Date date2) {
//采用date2减,如果减到正好相同为止
String beginyearmonth = ErpUtil.toDate("yyyy-MM", date1);
String endmonth = ErpUtil.toDate("yyyy-MM", date2);
int i = 0;
String curmonth = endmonth;
while (true) {
curmonth = saaddMonth(endmonth, -1);
if (curmonth.compareToIgnoreCase(beginyearmonth) == 0)
break;
i++;
}
return i + 1;
}
com.qherp.util.FastDate fdate = new com.qherp.util.FastDate(year_month
+ "-01");
java.util.Calendar cal = java.util.GregorianCalendar.getInstance();
cal.setTime(fdate);
cal.add(Calendar.MONTH, amount);
String result = com.qherp.util.ErpUtil.toDate("yyyy-MM", cal.getTime());
return result;
}
/**
* 计算两个日期之间相差的月数
* @param date1 此为开始日期
* @param date2 此为结束日期
* @return
*/
private int sagetMonths(Date date1, Date date2) {
//采用date2减,如果减到正好相同为止
String beginyearmonth = ErpUtil.toDate("yyyy-MM", date1);
String endmonth = ErpUtil.toDate("yyyy-MM", date2);
if (beginyearmonth.compareToIgnoreCase(endmonth) == 0)
return 1;
int i = 1;
String curmonth = endmonth;
while (true) {
curmonth = saaddMonth(endmonth, -1);
endmonth = curmonth;
if (curmonth.compareToIgnoreCase(beginyearmonth) == 0)
break;
if (i > 100)
break;
i++;
}
return i + 1;
}