精华内容
下载资源
问答
  • android gettimezone
    2021-06-07 14:47:32

    本文将带你了解Android应用开发之通过NITZ获取时区出错的解决,希望本文对大家学Android有所帮助。

    通过NITZ获取时区出错,插入SIM卡开机无法获取正确时区

    [SOLUTION]

    获取时区步骤分析:

    1:有些基站发送NITZ的信息是没有包含时区信息的,

    2:需要通过国家码在ICU中获取时区,获取到的时区可能是多个时区,同时返回第一个时区。

    3:ICU返回的时区很可能与客户需求不匹配,因此我司定义了一个数组让客户可以自定义国家码与之对应的时区(一个国家码只能对应唯一的一个时区)

    原本定义与国家码对应的时区可能不符合需求,或是没有定义就会引起这个问题

    可以通过LOG判定问题

    如果在radio_log中出现下面的LOG则确定是此问题引起:

    uses TimeZone of Capital City:

    需要在GsmServiceStateTracker文件中mTimeZoneIdOfCapitalCity 这个数组加入或是修改对应的国家码以及时区;

    举例

    如获取到的是New_York时区而贵司需求是Los_Angeles时区

    请搜索LOG如果出现

    GsmSST : [GsmSST0] uses TimeZone of Capital   City:America/New_York

    确定是此问题

    修改如下

    private String[][] mTimeZoneIdOfCapitalCity =   {                         {"us", "America/New_York"},    修改为   {"us",   "America/Los_Angeles"},                                                 };

    本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

    更多相关内容
  • public static String getTimeZone(){Calendar mDummyDate;mDummyDate = Calendar.getInstance();Calendar now = Calendar.getInstance();mDummyDate.setTimeZone(now.getTimeZone());mDummyDate.set(now.get(Calend...

    public static String getTimeZone(){

    Calendar mDummyDate;

    mDummyDate = Calendar.getInstance();

    Calendar now = Calendar.getInstance();

    mDummyDate.setTimeZone(now.getTimeZone());

    mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);

    return getTimeZoneText(now.getTimeZone(),true);

    }

    public static String getTimeZoneText(TimeZone tz, boolean includeName) {

    Date now = new Date();

    SimpleDateFormat gmtFormatter = new SimpleDateFormat("ZZZZ");

    gmtFormatter.setTimeZone(tz);

    String gmtString = gmtFormatter.format(now);

    BidiFormatter bidiFormatter = BidiFormatter.getInstance();

    Locale l = Locale.getDefault();

    boolean isRtl = TextUtils.getLayoutDirectionFromLocale(l) == View.LAYOUT_DIRECTION_RTL;

    gmtString = bidiFormatter.unicodeWrap(gmtString,

    isRtl ? TextDirectionHeuristics.RTL : TextDirectionHeuristics.LTR);

    if (!includeName) {

    return gmtString;

    }

    return gmtString;

    }

    展开全文
  • 要在Android中进行转换,我们使用SimpleDateFormat类,如下所示: /** Converting from String to Date **/ fun String.getDateWithServerTimeStamp(): Date? { val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH...

    为了理解这个概念,考虑以下情形,首先从服务器以GMT格式(假设)获取时间戳,然后需要将其转换为某种模型,该模型将日期存储为Local格式的Date对象,然后将日期作为时间戳(字符串)以GMT格式输入到数据库中,接着提供给UI,以某种本地格式在UI模型中获取了日期对象,最后以本地格式在UI上以字符串形式显示日期。流程如下图所示:

    ff9173fc47aada8ffd5a5339bff20250.png

    在整个过程中,我们需要将日期对象转为字符串或者将字符串转为日期对象。要在Android中进行转换,我们使用SimpleDateFormat类,如下所示:

    /** Converting from String to Date **/

    fun String.getDateWithServerTimeStamp(): Date? {

    val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",

    Locale.getDefault())

    dateFormat.timeZone = TimeZone.getTimeZone("GMT") // IMP !!!

    try {

    return dateFormat.parse(this)

    } catch (e: ParseException) {

    return null

    }

    /** Converting from Date to String**/

    fun Date.getStringTimeStampWithDate(): String {

    val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",

    Locale.getDefault())

    dateFormat.timeZone = TimeZone.getTimeZone("GMT")

    return dateFormat.format(this)

    }

    /** TESTING **/

    val dateString = "2018-01-09T07:06:41.747Z"

    val date = dateString.getDateWithServerTimeStamp()

    Log.d("LOG", "String To Date Conversion " +date.toString())

    val dateBackToString = date?.getStringTimeStampWithDate()

    Log.d("LOG", "Date To String Conversion " +dateBackToString)

    /** OUTPUT **/

    String To Date Conversion Tue Jan 09 15:06:41 GMT+08:00 2018

    Date To String Conversion 2018-01-09T07:06:41.747Z

    /** NOTE: I am currently at GMT+08:00 **/

    展开全文
  • android 时区转换

    千次阅读 2021-05-27 05:55:39
    基本知识Android本身提供了多个时间...这些时间格式都可以使用TimeZone.getTimeZone(“GMT”)或者TimeZone.getTimeZone(“UTC”)等来获取时间格式。在android里Calendar,SimpleDateFormate,Date以及对应的子类都可...

    基本知识

    Android本身提供了多个时间格式,像格林威治时间,世界时协调时间,夏日时等

    GMT:格林威治时间

    UTC:世界时协调时间

    DST:夏时令

    。。。。

    这些时间格式都可以使用TimeZone.getTimeZone(“GMT”)或者TimeZone.getTimeZone(“UTC”)等来获取时间格式。

    在android里Calendar,SimpleDateFormate,Date以及对应的子类都可以设置时间格式和时区。比如calendar.setTimeZone()

    如果没有设置时区的话,系统有一个getDefault()方法,来获取当前手机系统的时间格式和时区,比如你手机出厂就是GMT时间格式,那就设置为GMT时间;有的手机可以自己设置时间格式,那就是自己在系统里面设置的那个时间格式。

    但系统里面也提供了一些方法,比如System.getCurrentTime()是固定的时间格式,是UTC的时间,不管系统设置的是什么时间格式,返回的都是UTC时间。

    下面说说时区的问题,通常用的GMT和UTC都是有时区问题的,全球分为24个时区,23个整时区,和一个分时区。每个时区可以直接在对应的时间格式后面加上。比如GMT+8,GTM-8,GMT+08:30等。{^GMT[-+](\\d{1,2})(:?(\\d\\d))?$}括号里为系统匹配时区的正则表达式。

    一般手机里面的时区是跟着手机系统设置走的,但是如果非要指定某个时区的话,就可以像上面举例子一样,GMT+8,GTM-8,GMT+08:30,TimeZone.getTimeZone(“GMT-8”),然后设置在对应的Calendar,或者simpleDateFormate上,再去转化时间就可以按照自己的设定好的转了。

    Calendarcalendar =Calendar.getInstance();

    TimeZone timeZone = TimeZone.getTimeZone("GMT+9");

    calendar.setTimeZone(timeZone);

    System.out.println(calendar.get(Calendar.YEAR)+"年"

    +(calendar.get(Calendar.MONTH)+1)+"月"

    +calendar.get(Calendar.DAY_OF_MONTH)+"日 "

    +calendar.get(Calendar.HOUR_OF_DAY)+":"

    +calendar.get(Calendar.MINUTE));

    这样就可以完成指定时区的转换。

    实例:

    平常我们可能拿到的是 2016-04-19T22:00:44.831466+00:00这样个时间

    首先我们需要把这个时间解析成一个Date,

    SimpleDateFormat dateFormat =newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");

    TimeZone timeZone = TimeZone.getTimeZone("GMT+9");

    dateFormat.setTimeZone(timeZone);

    date= dateFormat.parse(time, newParsePosition(0));

    这样解析出来的时间就是格林威治9时区的时间了,如果不设置系统就会取手机默认的时间格式和时区,转化成对应的时间。

    dateFormat.applyPattern("yyyy-MM-dd HH:mm");

    dateFormat.format(date);

    这样就能按照自己的意愿来选择输出的时间格式了

    附:

    之前看了一下DST(夏时令),这个没有时区的问题,就是根据地区太阳升起的时间来确定的。而且是有的地区是使用的,有的地区是没有使用的,所以TimeZone类中提供了一个方法useDaylightTime()和inDaylightTime(Date),来判断这个地区是否使用了DST。如果一个地方之前使用,但是现在不使用,就返回false。如果一个国家之前从来没有使用,但是下一年将开始使用,将返回true。

    展开全文
  • 最近整理出android-获取网络时间、获取特定时区时间、时间同步的方法。具体如下:方法一:SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");dff.setTimeZone(TimeZone.getTimeZone("GMT+08"));...
  • 1,Android 判断用户的设备时区是否为东八区(中国) 2,实现代码 /** * 判断用户的设备时区是否为东八区(中国) 2014年7月31日 * @return */ public static boolean isInEasternEightZones() { boolean...
  • Android时间时区设置和获取

    万次阅读 2016-12-02 12:01:31
    判断系统是否自动获取时区public static boolean isTimeZoneAuto(Context mContext) { try { return android.provider.Settings.Global.getInt(mContext.getContentResolver(), android.
  • ,LG的机器,Android L的系统。 拿同一个手机,刷KK的版本就没问题了,刷L的版本就有问题。这是怎么回事呢? 有些Modem不支持NITZ,所以自动获取时间使用的是从互联网获取时间,叫做SNTP,但是无法获取时区,...
  • 项目有需求,要求在app里显示安装包打包的日期,我的想法是: ... return new Date().format(yyyy-MM-dd HH:mm:ss, TimeZone.getTimeZone(UTC)) } 然后在Build.gradle的BuildTypes中调用此方法来定义日期值,这样: b
  • 全屏getTimeZone(String ID)方法用于获取时区为给定的ID。声明以下是java.util.TimeZone.getTimeZone()方法的声明。publicstaticTimeZonegetTimeZone(StringID)参数ID--这是一个时区的ID。返回值该方法调用返回指定...
  • 之前没有设置过打包的命名,每次打包都是默认的”app-... return new Date().format(yyyyMMdd, TimeZone.getTimeZone(UTC)) } 3、自定义发布时的版本号(return的返回值可自行修改,例如1.0、2.0): //版本号 d
  • package ...import android.content.Context;import android.text.TextUtils;import android.text.format.DateFormat;import com.peopleapp.en.R;import java.text.ParseException;import java.t...
  • java.util.TimeZone getTimeZone()方法java.util.TimeZone.getTimeZone(String ID)方法用于获取时区为给定的ID。1 语法public static TimeZone getTimeZone(String ID)2 参数ID:这是一个时区的ID。3 返回值该方法...
  • c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份 mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号码 ...
  • Android各种时间,时间戳,获取,转换等方法1.获取时间的方法2.什么是时间戳?时间戳与时间的转换方法 1.获取时间的方法 1. 获取当地时间,获取的时间可以设定输出的格式 SimpleDateFormat d_f= new ...
  • 一、前言 TextClock 可以将当前日期和/或时间显示为格式化字符串。 二、效果图 三、简单使用 <LinearLayout xmlns:android=...DateFormat 来格式化时间,格式是根据系统的语言来变化的,你系统语言是中文就是中文的...
  • getTimeZone()」:指示此视图当前使用的时区。 「is24HourModeEnabled()」:指**「系统」**当前是否使用 24 小时模式。 「onVisibilityAggregated(Boolean isVisible:)」:当此视图的用户可见性可能受到此视图本身...
  • TimeZone pst = TimeZone.getTimeZone("Etc/GMT-8"); Date curDate = new Date(System.currentTimeMillis()); formatter.setTimeZone(pst); String curTime = formatter.format(curDate).replace.
  • 我们开发时,经常需要给合作方提供aar,或jar库文件,这个是如何使用Android Studio创建的呢? 创建Module 在Android Studio中新建一个APP项目,然后在此APP项目中File–New–New Module,创建一个Module ,其中类型...
  • android:name=“UMENG_CHANNEL” android:value=“Channel_ID” /> 里面的 Channel_ID 就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。 第一步 在 AndroidManifest.xml 里配置 ...
  • import android.app.Activity; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text....
  • Android Studio 多渠道打包

    千次阅读 2022-04-10 19:33:40
    一、为什么需要多渠道打包 假如我们没使用多渠道打包,假设切换 ...二、多渠道打包,在Android上,可以解决我们的一些什么问题。 可以修改App名称、图标,applicationId,版本号;添加资源,设置不同的请求环境;
  • Android时钟

    2021-06-08 01:10:37
    1. Android时钟,效果图:2. 时钟所需资源:(1)时钟表盘:(2)时钟时针:(3)时钟分针和秒针:3. 代码实现:package com.android.clockview; import java.util.Calendar; import java.util.TimeZone; import android....
  • SimpleDateFormat("Z").format(Calendar.getInstance(TimeZone.getTimeZone("GMT"),Locale.getDefault()).time) 其实这种格式已经是比较通用,业务上可以直接使用这种方式统一时区格式。 2 自定义格式:GMT+08:00...
  • Android Studio 命令行打包

    千次阅读 2021-09-08 17:46:27
    android studio命令打包(gradle) 1、前提 2、步骤 3、总结 一:前提 1、已经有jks签名文件,如果没有可以通过android studio build生成一个 2、本文是建立在umeng多渠道打包的基础上 3、本文介绍内容为在android ...
  • return new Date().format(yyyyMMdd, TimeZone.getTimeZone(UTC)) } /*多渠道打包自定义名称(英文)*/ def appName() { return mg_android } /*多渠道打包自定义变量release或*debug/ def buildType android { /*...
  • Android Studio生成自定义apk和aar名称前言自定义app名称自定义aar包名称代码中获取编译时间 前言 在Android studio中默认生成的apk、aar的名称都是app-release.apk、app-debug.apk、app-release.aar、app-debug.aar...
  • apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android' ... return new Date().format("yy.MMddHH", TimeZone.getTimeZone("GMT+8")) .

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,168
精华内容 867
热门标签
关键字:

android gettimezone