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

(1)Calendar

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

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;@Overrideprotected 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));elsehour = 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);}@Overridepublic 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;}}

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

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

(2)Date

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

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;@Overrideprotected 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);}@Overridepublic 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;}}

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

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

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm E");str_time = sdf.format(dt);txt_time.setText(str_time);

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

(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。

更多相关文章

  1. Intent传递对象的两种方法(Serializable,Parcelable)
  2. [置顶] Android之ContextMenu的使用方法以及与OptionMenu的区别
  3. INSTALL_FAILED_CONFLICTING_PROVIDER 错误解决方法
  4. File "/Volumes/android/.repo/repo/main.py", line 531, in _Ma
  5. Android Log日志信息获取
  6. Android Adapter 接口中几个方法的研究
  7. 实现android图像识别的几种方法

随机推荐

  1. Android中使用Animation实现控件的动画效
  2. android集合SSH搭建服务器客户端请求
  3. Android优质学习方法
  4. Android(安卓)UI属性大解
  5. 国内目前最全面的介绍——Android中的Bro
  6. android 建数据库 SQLite 存储sd 卡或者
  7. Android网络连接判断与处理
  8. 〖Android〗(how-to) fix k860/k860i bul
  9. Android应用程序进程启动过程的源代码分
  10. Python on Android