zoukankan      html  css  js  c++  java
  • android中系统时间日期的获取

    1、系统时间的一般获取 

      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");}

    2、利用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)

    3、利用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:年中的第几个星期

  • 相关阅读:
    处理MySQL的ibdata1文件过大问题
    关于mysql启动问题---mysqld_safe mysqld from pid file * ended
    mysql数据库指定ip远程访问
    关于access_log 日志文件以及ip、uv和pv的定义
    nginx配置及内核优化详解
    LN : leetcode 746 Min Cost Climbing Stairs
    LN : leetcode 684 Redundant Connection
    LN : leetcode 730 Count Different Palindromic Subsequences
    LN : leetcode 516 Longest Palindromic Subsequence
    LN : leetcode 215 Kth Largest Element in an Array
  • 原文地址:https://www.cnblogs.com/crazywenza/p/2792970.html
Copyright © 2011-2022 走看看