java在用SimpleDateFormat格式化時間時月份出現奇怪值

來源:互聯網
上載者:User

這兩天在做課設,關於圖書管理系統的,其中在借書的記錄中,時間記錄的月份總是出現不正常的數值,大於12經常四十幾五十幾,經過對借書模組的跟蹤,最後將錯誤定位到了時間格式化的這行代碼

SimpleDateFormat f = newSimpleDateFormat("yyyy-mm-dd HH:mm:ss");

經過這行代碼是要將格式化為常見的2013-07-11 09:07:20這種格式,結果經常出現2013-00-11 09:07:20或者2013-34-1109:07:20,月份很奇怪,然後發現yyyy-mm-ddHH:mm:ss中月份的MM被我小寫了,這導致在格式化時會把分鐘的時間放到月份位置,也就出現了奇怪的是月份,經過修改為

SimpleDateFormatf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

之後,時間就正常了.

雖然很簡單,但是提示我,再簡單的一行代碼也會有出錯的可能.

 

下面記錄一下SimpleDateFormat 的用法

Java 代碼:

import java.text.SimpleDateFormat;SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");Date curDate = new Date(System.currentTimeMillis());//擷取目前時間String str = formatter.format(curDate);


以上可以擷取當前的年月時分,也可以合起來寫(如下):
Java代碼:   

 

SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String date = sDateFormat.format(new java.util.Date());

如果想擷取當前的年月,則可以這樣寫(只擷取時間或者秒種用法一樣):
Java代碼:

 

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");String date=sdf.format(new java.util.Date());

當然還有就是可以指定時區的時間(待):

 

df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.CHINA);System.out.println(df.format(new Date()));

如何擷取Android系統時間是24小時制還是12小時制:
  

ContentResolver cv = this.getContentResolver();    String strTimeFormat = android.provider.Settings.System.getString(cv,  android.provider.Settings.System.TIME_12_24);  if(strTimeFormat.equals("24"))  {  Log.i("activity","24");  }

 

取得系統日期:

Calendar c = Calendar.getInstance();year = c.get(Calendar.YEAR);month = c.grt(Calendar.MONTH);day = c.get(Calendar.DAY_OF_MONTH);hour = c.get(Calendar.HOUR_OF_DAY);minute = c.get(Calendar.MINUTE);


利用Time擷取:

Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone資料。  t.setToNow(); // 取得系統時間。  int year = t.year;  int month = t.month;  int date = t.monthDay;  int hour = t.hour; // 0-23  int minute = t.minute;  int second = t.second;//唯一不足是取出時間只有24小時模式
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.