如何获取android系统时间是24小时制还是12小时制

如何获取android系统时间是24小时制还是12小时制,第1张

获取android当前系统时间是否是使用24小时格式

之前在网上查到一些资料,使用如下方式进行判断:

ContentResolver c = contextgetContentResolver(); String strTimeFormat = androidproviderSettingsSystemgetString(c,  androidproviderSettingsSystemTIME_12_24);if(strTimeFormatequals("24")){ if( LogisLoggable(TAG, LogDEBUG)){ Logd(TAG, "The system time is 24 hour format"); } }

以上是依赖于系统androidproviderSettings 中的方法,但如果当系统启动后,没有完成对

androidproviderSettings的初始化,使用这一方式有会出现异常

正确的使用应该是通过androidtextformatDateFormat 提供的一个方法可以获取当前系统时间是否使用24小时格式:

public static boolean is24HourFormat (Context context)

Since: API Level 3

Returns true if user preference is set to 24-hour format

Parameters

context the context to use for the content resolver

Returns

           true if 24 hour time format is selected, false otherwise

使用Java的那样写法貌似都是相差8个小时还是多少。可以用sqlite的查询来实现。public class DAO{public Cursor selectTT() { SQLiteDatabase db = thisgetWritableDatabase(); String sql="select datetime('now')"; Cursor cursor=dbrawQuery(sql,null); return cursor; } public String selectAJ(Cursor cr) { String result=""; for(crmoveToFirst();!crisAfterLast();crmoveToNext()) { result=crgetString(0); } return result; } }DAO dao=new DAO();String thisTime=daoselectAJ(daoselectTT());//这样也能得到,就是麻烦一点,还有很多简介方法你可以挖掘一下。

数据库中的文件的话,要adb shell进去查看数据库有没有该字段。存储卡上的文件的话,java中没有获取文件创建事件的接口。

一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)

String res = "";

try{

InputStream in = getResources()openRawResource(Rrawbbi);

//在\Test\res\raw\bbitxt,

int length = inavailable();

byte [] buffer = new byte[length];

inread(buffer);

//res = EncodingUtilsgetString(buffer, "UTF-8");

//res = EncodingUtilsgetString(buffer, "UNICODE");

res = EncodingUtilsgetString(buffer, "BIG5");

//依bbitxt的编码类型选择合适的编码,如果不调整会乱码

inclose();

}catch(Exception e){

eprintStackTrace();

}

myTextViewsetText(res);//把得到的内容显示在TextView上

二、 从asset中获取文件并读取数据(资源文件只能读不能写)

String fileName = "yantxt"; //文件名字

String res="";

try{

InputStream in = getResources()getAssets()open(fileName);

// \Test\assets\yantxt这里有这样的文件存在

int length = inavailable();

byte [] buffer = new byte[length];

inread(buffer);

res = EncodingUtilsgetString(buffer, "UTF-8");

}catch(Exception e){

eprintStackTrace();

}

三、 从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adbexe把本地计算机上的文件copy到sdcard上去,adbexe push e:/Ytxt /sdcard/, 不可以用adbexe push e:\Ytxt \sdcard\ 同样: 把仿真器上的文件copy到本地计算机上用: adb pull /data/data/comtt/files/Testtxt e:/

String fileName = "/sdcard/Ytxt";

//也可以用String fileName = "mnt/sdcard/Ytxt";

String res="";

try{

FileInputStream fin = new FileInputStream(fileName);

//FileInputStream fin = openFileInput(fileName);

//用这个就不行了,必须用FileInputStream

int length = finavailable();

byte [] buffer = new byte[length];

finread(buffer);

res = EncodingUtilsgetString(buffer, "UTF-8");

finclose();

}catch(Exception e){

eprintStackTrace();

}

myTextViewsetText(res);

final Calendar mCalendar=CalendargetInstance();

mCalendarsetTimeInMillis(time);

取得系统日期: int mYear = mCalendarget(CalendarYEAR)

int mMonth = mCalendarget(CalendarMONTH)

int mDay = mCalendarget(CalendarDAY_OF_MONTH)

取得系统时间:int mHour= mCalendarget(CalendarHOUR_OF_DAY);

int mMinuts= mCalendarget(CalendarMINUTE)

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

Time mTime=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。

mTimesetToNow(); // 取得系统时间。

int year = mTimeyear;

int month = mTimemonth;

int date = mTimemonthDay;

int hour =mTimehour; // 0-23

int minute = mTimeminute;

int second =mTimesecond;

唯一不足是取出时间只有24小时模式这个不叫屏幕的时间 应该叫系统时间

求采纳为满意回答。

这取决于对日期的格式定义

假如日期格式为2015-12-09即为2015年12月9日

可以使用SimpleDateFormat把字符串格式化转为日期

示例如下

public class MainActivity extends Activity {

private EditText etDate;

private Button btn;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

etDate = (EditText)findViewById(Ridtext);

btn = (Button)findViewById(Ridbutton);

btnsetOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String txt = etDategetText()toString();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = sdfparse(txt);

}

});

}

}

SimpleDateFormat的语法格式

G 年代标志符

  y 年

  M 月

  d 日

  h 时 在上午或下午 (1~12)

  H 时 在一天中 (0~23)

  m 分

  s 秒

  S 毫秒

  E 星期

  D 一年中的第几天

  F 一月中第几个星期几

  w 一年中第几个星期

  W 一月中第几个星期

  a 上午 / 下午 标记符 

  k 时 在一天中 (1~24)

  K 时 在上午或下午 (0~11)

  z 时区

以上就是关于如何获取android系统时间是24小时制还是12小时制全部的内容,包括:如何获取android系统时间是24小时制还是12小时制、android 怎么得到系统时间、Android中怎么获取系统时间并存入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9569179.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存