之前在网上查到一些资料,使用如下方式进行判断:
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中怎么获取系统时间并存入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)