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; @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(),就可以获得整个的时间信息,并且格式规范,不用再组装,可以直接显示。缺点是如果想用另外一种格式显示,或者只需要单个的时间信息,就比较麻烦。

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:

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。

Android获取系统时间方法的总结的更多相关文章

  1. Android 获取系统时间和网络时间

    有些时候我们的应用中只能使用网络时间,而不能使用系统的时间,这是为了避免用户关闭了使用网络时间的功能后所产生的误差. 直接上代码. 1.清单文件中网络添加权限. <!-- 访问Internet资 ...

  2. Android获取系统时间的多种方法

    Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现. 现总结如下: 方法一: ? 1 2 3 4 5 ...

  3. Android获取系统时间yyyyMMddHHmmssSSS

    代码改变世界 public String testTime1() throws ParseException { String DEFAULT_TIME_FORMAT = "yyyy-MM- ...

  4. (转+原)android获取系统时间

    参考的网站如下: http://c.biancheng.net/cpp/html/144.html http://www.linuxidc.com/Linux/2012-03/55909.htm 代码 ...

  5. C++获取系统时间方法(毫秒级)

    #include <sys/time.h> long getCurrentTime() { struct timeval tv; gettimeofday(&tv,NULL); r ...

  6. Android获取网络时间的方法

    一.通过免费或者收费的API接口获取 1.免费 QQ:http://cgi.im.qq.com/cgi-bin/cgi_svrtime 淘宝:http://api.m.taobao.com/rest/ ...

  7. C++11新特性,利用std::chrono精简传统获取系统时间的方法

    一.传统的获取系统时间的方法 传统的C++获取时间的方法须要分平台来定义. 相信百度代码也不少. 我自己写了下,例如以下. const std::string getCurrentSystemTime ...

  8. VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

    1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm ...

  9. LoadRunner中获取当前系统时间方法

    LoadRunner中获取当前系统时间方法 发表于:2017-6-02 11:41  作者:人生_0809   来源:51Testing软件测试网采编 字体:大 中 小 | 上一篇 | 下一篇 | 打 ...

随机推荐

  1. table下属标签与标签中间不能加其他任何标签

    今天设计网页,很想在table下面的caption下面加hr标签,不能正常解析,后来发现hr标签可以显示,但是用浏览器查看解析,发现hr在table上面进行了解析,不会再caption下面显示, 又连 ...

  2. MVVM架构~knockoutjs系列之文本框数符长度动态统计功能

    返回目录 这个功能为什么要写呢,因为在之前做了一个前端的页面效果,使用JS写的,感觉很累,真的,对于一个文本框长度动态统计,你要写blur,press,down什么的事件,太麻烦了,这时,我想到了kn ...

  3. [转载] fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

    说明: 转载自http://www.cnblogs.com/skywang12345/p/3308762.html概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对 ...

  4. ios app 打包上传 app store(Application Loader)

    背景:使用Xcode 上传APP, 这个 有时候很慢,构建版本需要等很长时间,所以我推荐使用Application Loader 1.使用xocd 打包,导出.ipa文件 2. OK ,跟着上面做, ...

  5. 抛弃强大的TFS ,借助于BugTracker.NET + Visual Source Safe + SourceLink搭建项目开发环境

    微软公司的Team Foundation Server是个强大的项目管理工具,如果用.NET开发,它应该是首选的项目管理平台.TFS的成本比较高,而且和Visual Studio集成紧密.比如TSF有 ...

  6. nodejs在Liunx上的部署生产方式-PM2

    先安装:npm install -g pm2 (注意:使用它要先安装它,用root账号和全局模式安装一下) 安装完成使用:pm2 -v 查看版本信息 安装成功之后,启动nodejs项目:pm2 sta ...

  7. Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap

    概要 本章对Java.util.concurrent包中的ConcurrentSkipListMap类进行详细的介绍.内容包括:ConcurrentSkipListMap介绍ConcurrentSki ...

  8. prototype.js 和 jQuery.js中 ajax 的使用

    这次还是prototype.js 和 jQuery.js冲突的问题,前面说到过解决办法http://www.cnblogs.com/Joanna-Yan/p/4836252.html,以及上网说的大部 ...

  9. 轻松自动化---selenium-webdriver(python) (四)

    本节要解决的问题: 如何定位一组元素? 场景 从上一节的例子中可以看出,webdriver可以很方便的使用findElement方法来定位某个特定的对象,不过有时候我们却需要定位一组对象, 这时候就需 ...

  10. 在Android中调用WebService

    某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ...