Android常用之系統時間擷取

來源:互聯網
上載者:User

Android常用之系統時間擷取

1、Calendar

  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)

2、new Date

  SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");

  Date curDate = new Date(System.currentTimeMillis());//擷取目前時間

  String str = formatter.format(curDate);

可以指定時區的時間(待):
  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);

  (strTimeFormat.equals("24"))

  {Log.i("activity","24");}

3、new Time 擷取24小時時間

  Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone資料。

  t.setToNow(); // 取得系統時間。

  int year = t.year;

  int month = t.month;

  date = t.monthDay;

  int hour = t.hour; // 0-23

  int minute = t.minute;

  int second = t.second;

瞭解:

1. oracle預設的系統時間就是sysdate函數,儲存的資料形如25-3-200510:55:33
2. java 中取時間的對象是java.util.Date。
3. oracle中對應的時間對象是java.util.Date,java.sql.Time,java.sql.Timestamp、它們都是是java.util.Date的子類。
4. oracle中與date操作關係最大的就是兩個轉換函式:to_date(),to_char()。to_date()一般用於寫入日期到資料庫時用到的函數。to_char()一般用於從資料庫讀入日期時用到的函數。

DATE、TIME 和 TIMESTAMP:
SQL 定義了三種與時間有關的資料類型:DATE 由日、月和年組成。TIME 由小時、分鐘和秒組成。 TIMESTAMP 將 DATE 和 TIME 結合起來,並添加了納秒域。
標準 Java 類 java.util.Date 可提供日期和時間資訊。但由於該類包含 DATE 和 TIME 資訊而沒有 TIMESTAMP 所需的納秒,因此並不與上述三種 SQL 類型完全相配。
因此我們定義了 java.util.Date 的三種子類。它們是:
1. 有關 SQL DATE 資訊的 java.sql.Date
2. 有關 SQL TIME 資訊的 java.sql.Time
3. 有關 SQL TIMESTAMP 資訊的 java.sql.Timestamp
對於 java.sql.Time,java.util.Time 基本類的小時、分鐘、秒和毫秒域被設定為零。 對於 java.sql.Date,java.util.Date 基本類的年、月和日域被分別設定為 1970 年 1

月 1 日。這是在 Java 新紀元中的“零”日期。java.sql.date中的日期可以和標準的SQL語句中含有日期的欄位進行比較.java.sql.Timestamp 類通過添加納秒域來擴充

java.util.Date。

oracle中兩個轉換函式:
1. to_date() 作用將字元類型按一定格式轉化為日期類型:
具體用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者為字串,後者為轉換日期格式,注意,前後兩者要以一對應。如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd

hh24:mi:ss'') 將得到具體的時間。
2. to_char():將日期轉按一定格式換成字元類型:
具體用法:to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'')

to_date()與24小時製表示法及mm分鐘的顯示:
在使用Oracle的to_date函數來做日期轉換時,很多Java程式員也許會直接的採用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉換,但是在Oracle中會引起錯誤:“ORA 01810

格式代碼出現兩次”。
如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不區分大小寫,MM和mm被認為是相同的格式代碼,所以Oracle的SQL採用了mi代替分鐘。 oracle預設的系統時間就是sysdate函數,儲存的資料形如2005-3-2510:55:33

,java 中取時間的對象是java.util.Date。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual

在java對oracle的操作中,對日期欄位操作的例子:
表 book 中有name varchar2(20)//書籍名稱,buydate Date //購買日期 兩個欄位。
已經建立了資料庫連接Connection conn;

方法一、使用java.sql.Date實現比較簡單的yyyy-mm-dd格式日期。java.sql.Date不支援時間格式。切記不要使用new java.sql.Date(int year,int month,int date),因為還要處

理時間差問題。
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
pstmt.setString(1, "Java編程思想");
pstmt.setDate(2,buydate );
pstmt.execute();
方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
pstmt.setString(1, "Java編程思想");
pstmt.setTimestamp(2,buydate );
pstmt.execute();
方法三、使用oracle 的to_date內建函數
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
String buydate="2004-06-08 05:33:99";
pstmt.setString(1, "Java編程思想");
pstmt.setString(2,buydate );
pstmt.execute();
附:oracle日期格式參數含義說明
d:一周中的星期幾
day:天的名字,使用空格填充到9個字元
dd:月中的第幾天
ddd:年中的第幾天
dy:天的簡寫名
iw: ISO標準的年中的第幾周
iyyy:ISO標準的四位年份
yyyy:四位年份
yyy,yy,y:年份的最後三位,兩位,一位
hh: 小時,按12小時計
hh24:小時,按24小時計
mi:分
ss:秒
mm:月
mon:月份的簡寫
month:月份的全名
w:該月的第幾個星期
ww:年中的第幾個星期



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.