请问android studio如何通过代码获得不同时区的时间,比如界面按一下美国的按钮,显示的就是美国的时间

SimpleDateFormat localFromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");localFromat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));Date oldDate = localFromat.parse(date);

android获取时区(获取当前时区)_android获取时区(获取当前时区)

Android 怎么获取当前的时间戳

Android获取当前时间代码

//需要引用的

importjava.sql.Timestamp;

importjava.text.SimpleDateFormat;

//详细代码

java.util.Datecurrentdate=newjava.util.Date();//当前时间

//longi=(currentdate.getTime()/1000-timestamp)/(60);

//System.out.println(currentdate.getTime());

//System.out.println(i);

Timestampnow=newTimestamp(System.currentTimeMillis());//获取系统当前时间

System.out.println("now-->"+now);//返回结果精确到毫秒。

时间戳转日期

inttimestamp=1310457552;//将这个时间戳转为日期

returngetTime(timestamp);

定义getTime,getDate,IntToLong

publicstaticStringgetTime(inttimestamp){

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");

Stringtime=null;

Stringstr=sdf.format(newTimestamp(IntToLong(timestamp)));

time=str.substring(11,16);

Stringmonth=str.substring(5,7);

Stringday=str.substring(8,10);

time=getDate(month,day)+time;

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

returntime;

publicstaticStringgetDate(Stringmonth,Stringday){

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//24小时制

java.util.Dated=newjava.util.Date();;

Stringstr=sdf.format(d);

Stringnowmonth=str.substring(5,7);

Stringnowday=str.substring(8,10);

Stringresult=null;

inttemp=Integer.parseInt(nowday)-Integer.parseInt(day);

switch(temp){

case0:

result="今天";

break;

case1:

result="昨天";

break;

case2:

result="前天";

break;

default:

StringBuildersb=newStringBuilder();

sb.append(Integer.parseInt(month)+"月");

sb.append(Integer.parseInt(day)+"日");

result=sb.toString();

break;

returnresult;

//javaTimestamp构造函数需传入Long型

publicstaticlongIntToLong(inti){

longresult=(long)i;

result*=1000;

returnresult;

android 如何修改时区

AlarmManager timeZone= (AlarmManager)getSystemService(ALARM_SERVICE);

timeZone.setTimeZone("Asia/Taipei");

这样就可以将时区设到台北了。先打开飞行模式,然后去设置—日期和时间修改什么型号的机器,菜单设置里面的日期跟时间里不是有选择时区吗?LG的是这样的android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=asia/shanghai。但是如何实现更改默认系统时间呢?

在android中,linux内核中、rtc时钟,默认的起始日期都是1970年1月1日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在rtc驱动中可以很容易实现。在rtc驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。rtc从1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。因此,一旦读出来的rtc值小于我们预想的值比如2012-01-01(1325402913)小,我们就把它设置到这个时间点。

seconds = rtc_read_time();

printk("init pmu/rtc time to %ld \n", seconds);

if(seconds <= 1325402913) {

seconds = 1325402913;/*2012-01-01*/

ret = rtc_set_time(seconds);

rtc_dbg("init set time: %ld, ret =0x%x\n", seconds, ret);

}

笔者通过结果显示,在android平台上是可行的。要设置到哪天几点几分,只要算好具体1970-01-01 00:00差的秒数即可,简单明了。这样客户、用户使用起来更方便一些。

android获取时区(获取当前时区)_android获取时区(获取当前时区)_02

android中如何获得系统当前时间

使用Java的那样写法貌似都是相差8个小时还是多少。可以用sqlite的查询来实现。

public class DAO

public Cursor selectTT()

SQLiteDatabase db = this.getWritableDatabase();

String sql="select datetime('now')";

Cursor cursor=db.rawQuery(sql,null);

return cursor;

public String selectAJ(Cursor cr)

String result="";

for(cr.moveToFirst();!cr.isAfterLast();cr.moveToNext())

result=cr.getString(0);

return result;

DAO dao=new DAO();

String thisTime=dao.selectAJ(dao.selectTT());

//这样也能得到,就是麻烦一点,还有很多简介方法你可以挖掘一下。