`

Android系统时间制式的获取(24小时制式/12小时制式)及UTC与本地时间的转换

 
阅读更多

I、获取系统时间制式(12小时制/24小时制)

 

1、背景/使用场景

在有些软件中,可能需要展示一些时间信息,而这些信息可能是Server以UTC格式或Unix timestamp 格式推送过来的,终端可能需要将这些转换为本地时间展示。

 

而根据个人喜好,终端的制式可能是12小时制、也可能是24小时制的,为了软件的亲和度,就需要根据当前系统的时间的制式,动态转换制式,这样就需要获取系统当前设置的时间制式。

 

2、获取方式

  

ContentResolver cv = this.getContentResolver();
// 获取当前系统设置
String strTimeFormat = android.provider.Settings.System.getString(cv,
 android.provider.Settings.System.TIME_12_24);
        
if(strTimeFormat.equals("24"))
{
     Log.i("activity","当前是24制式");
}

if(strTimeFormat.equals("12"))
{
     Log.i("activity","当前是12制式");
}

 

3、如何转换为12小时制式/24小时制式的表示方式

 

String getTimestamp() 
{
    // 转换为24小时制式的字串
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss sss");
    Date date = new Date();
    return df.format(date);
}

 

   HH:返回的是24小时制的时间

   hh:返回的是12小时制的时间

 II、时区

 

1、基本概念

 

时区

time zone 1884年国际经线会议规定,全球按经度分为24个时区,每区各占经度15°。

以本初子午线为中央经线的时区为零时区,由零时区向东、西各分12区,东、西12区都是半时区,共同使用180°经线的地方时。

 

CST

China Standard Time UTC+8:00 中国标准时间(北京时间),在东八区。

 

UTC

Universal Time Coordinated,世界协调时间,又称世界标准时间、世界统一时间。UTC 提供了一种与时区无关(或非特定于时区)的时间。

世界上的所有时区都可以表示为 UTC 加上或减去一个偏移量。

因此,UTC是0时区的时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时。

 

GMT

Greenwich Mean Time格林威治标准时间,指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。

 

Unix timestamp

Unix时间戳,或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,

定义为从格林威治时间(UTC/GMT的午夜)1970年01月01日00时00分00秒起至现在的总秒数。

 

可以这么说:

UTC和GMT几乎是同一概念,两者的区别是GMT是一个天文上的概念,UTC是基于原子钟。

GMT=UTC(精确滴说是:UTC = GMT +/- 0.9 s

GMT + 8 = UTC + 8 = CST

UTC+时间差=本地时间 (时间差东为正,西为负,东八区记为 +0800)

 

2、UTC与GMT本地时区的转换

将Server传送的UTC时间,转换为指定时区的时间,示例代码如下。

 

如果转换为本地Local时间,则直接传本地时区即可。

本地时区的获取方法为TimeZone.getDefault()。

 

/* 将Server传送的UTC时间转换为指定时区的时间 */
public String converTime(String srcTime, TimeZone timezone)
{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    SimpleDateFormat dspFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String convertTime;
                    
    Date result_date; 
    long result_time = 0; 
        
    // 如果传入参数异常,使用本地时间    
    if (null == srcTime)
    {
         result_time = System.currentTimeMillis();
    }
    else
    {
         // 将输入时间字串转换为UTC时间
         try
         {
              sdf.setTimeZone(TimeZone.getTimeZone("GMT00:00"));
              result_date = sdf.parse(srcTime);

              result_time = result_date.getTime();
          }
          catch (Exception e)
          {
                // 出现异常时,使用本地时间
             result_time = System.currentTimeMillis();
                dspFmt.setTimeZone(TimeZone.getDefault());
                convertTime = dspFmt.format(result_time);
                return convertTime;
           }
    }
    
    // 设定时区            
    dspFmt.setTimeZone(timezone);
    convertTime = dspFmt.format(result_time);
        
    Log.e("current zone:", "id=" + sdf.getTimeZone().getID()
            + "  name=" + sdf.getTimeZone().getDisplayName());
        
    return convertTime;
}

 

 

3、Unix timestamp与GMT的转换

 详细可以参考

http://www.cnblogs.com/flying5/archive/2011/12/05/2276578.html#

 

参考网友资料:

http://blog.csdn.net/hgm770876501/article/details/8502364

http://blog.csdn.net/liu17ezlyy/article/details/8251731

http://www.cnblogs.com/flying5/archive/2011/12/05/2276578.html#

 

分享到:
评论
1 楼 dndxcsy 2013-04-05  
好帖!总算在这里找到HH:mm:ss和hh:mm:ss会返回24小时制和12小时制的差别了。感谢!

相关推荐

    UTC与本地时间转换函数

    自实现的UTC时间与本地时间的转换(这里只转换成了UTC0区,要到自己的时区自己加上偏移.同时实现了UTC到本地时间的转换和本地时间到UTC时间转换. UTC时间使用的是32位整型实现.没有使用64位.因此只能存储约132年之间的...

    GPS UTC时间转换函数

    3. **与本地时间同步**:在计算机系统中,通过GPS接收器获取的UTC时间可以帮助实现系统的精确时间同步。 4. **与北京时间转换**:北京时间是中国采用的东八区时区的时间,比UTC时间快8小时。当处理GPS数据时,可能...

    GPS UTC 时间转换

    4. **时间区和夏令时**:UTC是不考虑时区和夏令时的,但在某些应用场景中,可能需要将UTC时间转换为特定时区的本地时间,这涉及到时区偏移和夏令时规则。 5. **转换算法**:GPS和UTC之间的转换算法通常涉及简单的加...

    GPS UTC与北京时间的转换函数

    GPS UTC与北京时间的转换主要涉及两个步骤:一是计算时区差,二是处理闰秒。 1. 计算时区差: 北京位于东八区,因此与UTC有8小时的时差。如果GPS UTC时间是t,那么北京时间可以表示为t + 8小时。需要注意的是,这...

    UTC时间转换算法

    UTC与RTC之间的转换是计算机系统中的常见操作,特别是在处理跨时区通信、日志记录或时间同步等问题时。以下将详细解释这两种时间格式的转换算法。 1. UTC到RTC转换: 当从UTC时间转换为RTC时间时,我们需要考虑...

    本地时间转为UTC时间

    在IT领域,尤其是在涉及到跨时区应用或全球性服务的软件开发中,本地时间与UTC时间的转换是一项基本且至关重要的技术。本文将深入探讨本地时间(Local Time)与协调世界时(Coordinated Universal Time,简称UTC)的...

    GNSS时间系统与UTC时间系统的正反算

    在MATLAB环境下开发GUI(图形用户界面)程序,可以实现GNSS时间系统与UTC时间之间的相互转换,这对于卫星通信、地球科学、航空航天等领域非常重要。 在MATLAB中创建GUI,首先需要定义图形组件,如按钮、文本框和...

    UTC时间戳与北京时间转换C源码

    `time()`函数用于获取当前时间的时间戳,`gmtime()`和`localtime()`则分别用于将时间戳转换为UTC和本地时间。`mktime()`函数可以将结构体`tm`表示的本地时间转换为时间戳。 在UTC和北京时间的转换中,关键在于理解...

    服务器端世界时间(UTC)转换客户端时区时间

    ### 服务器端世界时间(UTC)转换客户端时区时间 #### 概述 在现代互联网应用中,服务器通常需要处理来自全球各地用户的请求,并且在显示时间信息时必须考虑到用户所在的地理位置及其对应的时区差异。例如,对于一个...

    Android ndk下获取系统使用时间

    当我们需要在Android NDK环境中获取系统的使用时间时,通常涉及到的是获取系统运行的时间戳或者CPU的使用情况。本文将详细介绍如何在Android NDK环境下实现这一功能。 首先,我们需要理解“系统使用时间”可能有两...

    bds/gps与utc时间互转

    标题中的“bds/gps与utc时间互转”涉及到的是卫星导航系统的时间系统转换问题。BDS(北斗卫星导航系统)和GPS(全球定位系统)是两大全球卫星导航系统,它们各自拥有独立的时间体系,而UTC(协调世界时)是国际上...

    GPS-UTC时间转换&坐标转换.rar

    在IT领域,时间和坐标转换是地理信息系统(GIS)和卫星导航系统中不可或缺的部分。本项目主要涉及了两个关键知识点:GPS-UTC时间转换和坐标系转换,这些在C#编程环境下实现,并通过可视化界面提供了良好的用户体验。...

    时间时转换_时间时转换UTC时转北京时间_UTC_

    UTC作为全球通用的时间标准,与各地的本地时间(如BJT)以及特定系统(如GPS)的时间存在转换关系。通过MATLAB等编程语言实现这些转换,能够帮助我们在各种应用场景中实现时间的准确对应,从而确保系统的正常运行和...

    标准时间UTC相互转换工具

    标题中的“标准时间UTC相互转换工具”指的是一个应用程序,它能帮助用户在协调世界时间(UTC)和本地标准时间之间进行转换。协调世界时间是一种国际上广泛采用的时间标准,主要用于科学、航空、航海以及全球通信等...

    UTC与本地时间互转工具

    UTC与我们日常生活中的本地时间可能存在小时或分钟的差异,这取决于地理位置的经度以及是否处于夏令时。了解如何在UTC和本地时间之间进行转换对于编程、数据分析和系统管理至关重要。 UTC时间通常在编程中用于记录...

    UTC时间转换工具

    这是一种常见的日期时间表示方式,其中"yyyy"代表四位数的年份,"MM"代表两位数的月份,"dd"是两位数的日期,"HH"是24小时制的小时,"mm"是分钟,"ss"是秒。这种格式清晰且易于理解,但在处理UTC时间时,可能需要...

    JavaScript将当前时间转换成UTC标准时间的方法

    这里使用JavaScript将当前时间转换成UTC标准时间,北京在东八区,在北京时间基础上减掉8小时 <!DOCTYPE html> <html> <body> Click the button to display the UTC date and time as a string. </p...

    转UTC时间.zip_/Aplayer/play.html_GPS时间_UTC年_UTC时间转化_mill8i9

    这个压缩包文件“转UTC时间.zip_/Aplayer/play.html_GPS时间_UTC年_UTC时间转化_mill8i9”显然与UTC时间的转换有关,特别是涉及到GPS(全球定位系统)的时间记录和处理。下面我们将详细探讨UTC时间、GPS时间以及它们...

    TimeConvert_儒略日_儒略日utc_timeconvert_时间转换_GPST与UTC_

    在IT领域,时间转换是至关重要的,特别是在全球定位系统(GPS)和协调世界时(UTC)的应用中。本文将深入探讨“TimeConvert_儒略日_儒略日utc_timeconvert_时间转换_GPST与UTC”这个主题,以及相关的重要知识点。 ...

    UTC时间转换源码

    为了转换为本地时间,我们需要知道目标时区与UTC的偏移量。这个偏移量可以是固定的,如北京比UTC快8小时,也可以根据夏令时变化。 3. **应用时区偏移**:将UTC时间加上或减去相应的时区偏移,得到本地时间。如果要...

Global site tag (gtag.js) - Google Analytics