您的位置:首页 > 编程语言 > Java开发

jdk 版本差异之 DateFormat.getDateInstance()

2016-03-10 16:05 525 查看
C:\>java -version
java version "1.6.0_10-rc2"
Java(TM) SE Runtime Environment (build 1.6.0_10-rc2-b32)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

  

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class T {

public static void main(String[] args) {
System.out.println(getNextMonday(new Date(), 1));
}

// 获得下周星期一的日期
public static String getNextMonday(Date date,int weeks) {
int mondayPlus = getMondayPlus(date);
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.setTime(date);
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
//DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd");
String preMonday = df.format(monday);
return preMonday;
}

// 获得当前日期与本周一相差的天数
private static int getMondayPlus(Date date) {
Calendar cd = Calendar.getInstance();
cd.setTime(date);
// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == 1) {
return -6;
} else {
return 2 - dayOfWeek;
}
}
}

   输出的是2014-1-20
    在linux版本jdk

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)

    输出的是 Jan 20, 2014
    不通版本,不同厂商的jdk有些地方是有一些差异的,,特别是在io.线程相关类。差异有一些。    之前也遇到过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: