Android获取系统时间方法的总结

Android获取系统时间方法的方法有很多种,常用的有Calendar、Date、currentTimeMills等方法。

(1)Calendar

Calendar获取系统时间首先要用Calendar.getInstance()函数获取一个实例,再为该实例设定时区(中国的时区为GMT+8:00),最后使用Calendar.get()函数获取时间的具体信息,如年,月,日,小时,分,秒,星期几。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

package com.hzhi.time_example;

import java.util.Calendar;

import java.util.TimeZone;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class MainActivity extends Activity {

     

    TextView txtTime1;

    TextView txtTime2;

    Calendar cal;

    String year;

    String month;

    String day;

    String hour;

    String minute;

    String second;

    String my_time_1;

    String my_time_2;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        txtTime1 = (TextView) findViewById(R.id.textView1);

        txtTime2 = (TextView) findViewById(R.id.textView2);

         

        cal = Calendar.getInstance();

        cal.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));

         

        year = String.valueOf(cal.get(Calendar.YEAR));

        month = String.valueOf(cal.get(Calendar.MONTH))+1;

        day = String.valueOf(cal.get(Calendar.DATE));

        if (cal.get(Calendar.AM_PM) == 0)

            hour = String.valueOf(cal.get(Calendar.HOUR));

        else

            hour = String.valueOf(cal.get(Calendar.HOUR)+12);

        minute = String.valueOf(cal.get(Calendar.MINUTE));

        second = String.valueOf(cal.get(Calendar.SECOND));

         

        my_time_1 = year + "-" + month + "-" + day;

        my_time_2 = hour + "-" + minute + "-" + second;

         

        txtTime1.setText(my_time_1);

        txtTime2.setText(my_time_2);

         

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

}

缺点是获得的这些时间信息都是独立的,如果要一起显示的话,还要组装起来凑成一个字符串,稍显麻烦。不过如果只需要单个时间信息,如星期几,这种方法是比较方便的。并且可以根据Calendar.AM_PM属性判断当前是AM还是PM(0为AM,1为PM),然后根据需要显示12小时或24小时的时间。或者直接获得Calendar.HOUR_OF_DAY显示24小时的时间。

(2)Date

Date方法比较简单,只需要一条语句:Date().toLocaleString(),就可以获得整个的时间信息,并且格式规范,不用再组装,可以直接显示。缺点是如果想用另外一种格式显示,或者只需要单个的时间信息,就比较麻烦。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

package com.hzhi.time_example_02;

import java.util.Date;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class MainActivity extends Activity {

     

    TextView txt_time;

    Date dt;

    String str_time;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        txt_time = (TextView) findViewById(R.id.textView1);

        dt = new Date();

        str_time = dt.toLocaleString();

        txt_time.setText(str_time);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

}

 

可以定义SimpleDateFormat,规定哪些信息显示,哪些信息不显示,如显示年、月、日、小时、分钟、星期几,可以定义下面的SimpleDateFormat:

1

2

3

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm E");

str_time = sdf.format(dt);

txt_time.setText(str_time);

 

(3)currentTimeMills

System.currentTimeMillis()产生一个毫秒数,即当前距离1970-01-01 00:00:00的毫秒数。如果只是得到这个毫秒数是毫无意义的,但是Date(System.currentTimeMillis())之后就可以把这个毫秒数转换为一个日期变量。实际上,Date()就相当于Date(System.currentTimeMillis())。也可以在Date后面跟任意一个long型变量,如Date(1000000000),就得到一个日期:1970-01-12 21:46:40。

----------------------------------------

本篇由bciduino机器人开源项目转载,欢迎关注我们公众号:机器人开源项目。

欢迎采购相关BCI脑电模块及机器人设备。

公众号:机器人开源项目

 添加微信:18810997748魏先生

  

 

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值