Android开发之时间类的使用

Android日期操作中常用的三种方式:

1.Date

2.Calendar

3.Unix时间戳

1与2的在具体的日期计算上便利高,3计算上方便和灵活,效率高。利用SimpleDateFormat可以实现字符串与Date对象的相互转化。

Date与Calendar的区别

Calendar是能够自动根据手机所设置的时区来调整时间戳的,也就是该时区真实的时间戳Calendar。

Date和SimpleDateFormat获得的时间戳则不考虑时区,而是获取标准的GMT时间戳。

TimeZone.getDefault().getRawOffset()可以获得手机时区与GMT的时间戳差

也就是说如果要将当前时间戳转化为标准时间戳的话可以使用以下代码

Calendar calendar = Calendar.getInstance();// 获取当前日历对象
long unixTime = calendar.getTimeInMillis();// 获取当前时区下日期时间对应的时间戳
long unixTimeGMT = unixTime - TimeZone.getDefault().getRawOffset();// 获取标准格林尼治时间下日期时间对应的时间戳

那么在实际开发过程中,使用标准时间戳,因为用户很有可能会有更改时区的操作出现,如果使用对应时区的时间戳,并且时间戳作为某种标记量存入了数据库,那么一旦时区发生改变,已存数据将会与当前时区设置产生问题;而使用标准时间戳则可以避免这一问题,因为通过程序可以很容易地将时间戳转化为标准时间戳,并且标准时间戳是固定的,这样就能保证即使在修改了时区的情况下,也能正确处理日期时间。

Android开发中 获取当前Android的年月日时分秒的时间


Android的文件有建议用Time代替Calendar。用Time对CPU的负荷会较小。在写Widget时特别重要。

//此处从结果来看似乎用的是手机实际时间
Time time = new Time();
// 获取当前时间
time.setToNow();
//获取时间的各个值
int year = time.year;
//月份的范围是0~11
int month = time.month;
int day = time.monthDay;
int minute = time.minute;
int hour = time.hour;
int sec = time.second;
Log.v("DateDemo", "当前时间为:" + year + "年 " + month + "月 " + day + "日 " + hour
        + "时 " + minute + "分 " + sec + "秒");
//将日期转化为特定格式
String timeStr = time.format("%Y %m %d %H %M %S");
Log.v("DateDemo",timeStr);


获取Android系统时间是24小时制还是12小时制

ContentResolver cv = this.getContentResolver();
String strTimeFormat = Settings.System.getString(cv,
        android.provider.Settings.System.TIME_12_24);

导入的包为android.provider.Settings

参考链接:

http://www.2cto.com/kf/201207/139551.html

http://blog.csdn.net/yudajun/article/details/7939552

时间: 2024-10-29 22:18:44

Android开发之时间类的使用的相关文章

Android开发之时间日期

 对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子,看对你是否有帮助. 首先是时间设置: .java文件(MainActivity.java): package com.example.activity_time_date; import java.util.Calendar; import android.app.Activity; import

Android开发常用工具类

来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils. PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils. ParcelUtils.Rand

20个Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

最全Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

Android开发之时间日期1

对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子,看对你是否有帮助. 首先是时间设置: .java文件(MainActivity.java): package com.example.activity_time_date; import java.util.Calendar; import android.app.Activity; import

Android开发 之MainActivity类

一.MainActivity: 1.每个种语言都有一个程序入库(如:C#main函数),而Android程序的入口就是Mani Actiivty函数. 2.Activity是Android的核心类(android.app.Activity),在Activity类有onCreate事件方法,一般用于对Activity进行初始化,并且通过setContentView方法将View放到Activity上,绑定后,Activity会显示View上的控件. MainAcitvity.java文件下的Mai

Android开发之时间日期2

昨天给大家分享了一个时间和日期设置的小例子,今天发现Android的布局组件中有关于时间和日期的设置的组件,废话不多说,先给大家分享一下我的经验. 时间日期设置组件:TimePicker.DatePicker 在布局文件中直接可以添加到我们的布局样式中,大家看代码: <LinearLayout android:id="@+id/linear1" android:orientation="vertical" android:layout_width="

【Android开发】Context类

Context 英文直译:上下文 Google官方文档概述: Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well

android开发Tost工具类管理(一)

Tost工具类管理: 1 package com.gzcivil.utils; 2 3 import android.content.Context; 4 import android.widget.Toast; 5 6 /** 7 * 8 * @author LiJinlun date 2016-01-10 9 */ 10 public class MyToast { 11 private static Toast mToast = null; 12 13 /* 14 * 一个Activity