Java獲取日期屬於當年第幾周


String today = "2013-01-14";  
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
Date date = null;  
try {  
    date = format.parse(today);  
} catch (ParseException e) {  
    // TODO Auto-generated catch block  
    e.printStackTrace();  
}  
  
Calendar calendar = Calendar.getInstance();  
calendar.setFirstDayOfWeek(Calendar.MONDAY);  
calendar.setTime(date);  
  
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));  

用到判斷日期屬於當年的第幾周,用了一個有點復雜的代碼。看Calendar類時,看到了WEEK_OF_YEAR,很實用。但是用時又出現了點小問題,比如2010-01-03,返回的結果是2(即2010年的第二個星期),原因是美國是以周日為每周的第一天。

我想到了更改星期的起始日,setFirstDayOfWeek(int value),傳了一個1,想把周一設成第一天,但是沒有起到效果。查文檔后改成了Calendar.MONDAY就好使了,卻不太清楚為什么用1不好使,用Calendar.MONDAY就行呢?

  

  補:又查看了一下“常量字段值”,發現MONDAY的值根本就不是想當然的1,而是2。

  SUNDAY :1

  MONDYA :2

  TUESDAY :3

  WEDNESDAY :4

  THURSDAY : 5

  FRIDAY : 6

  SATURDAY :7

 

 java 獲取當前時間,將天數減一天,返回Date.

SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = new Date();
Calendar date = Calendar.getInstance();
date.setTime(beginDate);
date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
Date endDate = dft.parse(dft.format(date.getTime()));

 java獲取當前日期是星期幾

1、使用Calendar類

 /**
   * 獲取當前日期是星期幾<br>
   * 
   * @param dt
   * @return 當前日期是星期幾
   */
   public static String getWeekOfDate(Date dt) {
    //int[] weekDays = {7, 1, 2, 3, 4, 5, 6}; String[] weekDays
= {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; Calendar cal = Calendar.getInstance(); cal.setTime(dt); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; return weekDays[w]; }

2、使用SimpleDateFormat格式化日期

Date date=new Date();

SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");

dateFm.format(date);

注:格式化字符串存在區分大小寫

對於創建SimpleDateFormat傳入的參數:EEEE代表星期,如“星期四”;MMMM代表中文月份,如“十一月”;MM代表月份,如“11”;

yyyy代表年份,如“2010”;dd代表天,如“25”

int[] weekDays = {7, 1, 2, 3, 4, 5, 6};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM