请问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获取当前时间代码
//需要引用的
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中如何获得系统当前时间
使用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());
//这样也能得到,就是麻烦一点,还有很多简介方法你可以挖掘一下。