android 系统日期时间的获取
2015-07-03 13:42
537 查看
[java] view plaincopyprint? import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss "); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String str = formatter.format(curDate); 可以获取当前的年月时分,也可以分开写: [java] view plaincopyprint? SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date = sDateFormat.format(new java.util.Date()); 如果想获取当前的年月,则可以这样写(只获取时间或秒种一样): Java代码 [java] view plaincopyprint? SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM"); String date=sdf.format(new java.util.Date()); 当然还有就是可以指定时区的时间(待): [java] view plaincopyprint? df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.CHINA); System.out.println(df.format(new Date())); |
[java] view
plaincopyprint?
ContentResolver cv = this.getContentResolver();
String strTimeFormat = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.TIME_12_24);
if(strTimeFormat.equals("24"))
{
Log.i("activity","24");
}
[java] view
plaincopyprint?
Calendar c = Calendar.getInstance();
取得系统日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系统时间:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
plaincopyprint?
Calendar c = Calendar.getInstance();
取得系统日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系统时间:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
Calendar c = Calendar.getInstance();
取得系统日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系统时间:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
利用Time获取
[java] view
plaincopyprint?
Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
t.setToNow(); // 取得系统时间。
int year = t.year;
int month = t.month;
int date = t.monthDay;
int hour = t.hour; // 0-23
int minute = t.minute;
int second = t.second;
唯一不足是取出时间只有24小时模式.
//将系统设置为北京时区(这样修改时区后都是以北京东八区为主)
[java] view
plaincopyprint?
//将系统设置为北京时区
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
Date date = new Date(currentTimeMillis);
int currentHour
= date.getHours();
举例:代码放GAE上,默认时间为美国时区,google到蛮多说下面方法可以解决
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); Date date = cal.getTime();
date还是为美国时间,不起作用?
后来
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); Calendar cal = Calendar.getInstance(); Date date = cal.getTime();
这样就OK了。。。
时间和日历是两个不同的概念。
Date代表的是一个绝对时间,也就是说,不管你在哪个时区,Date都是一样的,都是从1970年1月1日0点0分GMT时间起,到目前这一刻的毫秒数。所以,你第一段代码和第二段代码里面,得到的date对象所代表的时间其实是一样的。
而日历是人们对绝对时间的一种描述方法,例如某年某月某日几时几分几秒,这,随着你当前所处的时区和地区而不同。
你在观察date对象的时候,你肯定没有去看它的毫秒数,而是先把毫秒数转换成一个日历。你没有写出你是怎么把date转换成日历的,但假如你是用默认的Date.toString()的话,那么,这是根据当前的默认时区来把毫秒数转换成日历的。因此,你在第一段代码里没有修改默认时区,得到的还是美国时间。而在第二段代码里,因为修改了默认时区,所以虽然绝对时间没有变化,但是你转换得到的日历不一样了。
其实,如果你是要获取当前时间,那么直接用new Date()就可以了,跟你先创建一个Calendar对象,再指定一个时区后获取的date是完全一样的。只有在你需要把一个date用日历来表示的时候,才需要用到Calendar和TimeZone。
相关文章推荐
- Android中如何判断内存卡是否存在
- Android的图片缓存ImageCache(转)
- Android源码编译--整理
- Android入门(4)——AutoComplete TextView实现动态自动匹配输入的内容
- Android 多个ImageView图片层叠透明区域点击事件穿透
- Android中获取手机屏幕各部分的尺寸
- Java, android Scanner 简单的使用
- Android入门(3)——使用TextView实现跑马灯效果
- Android Fragment 真正彻底的解决(下一个)
- Android中保存图片的两种方式
- Android ScrollView遇到的问题
- android TextView设置删除线,超链接,颜色和字体等说介绍,androidtextview
- android实现背景音乐播放
- android如何长时间音乐播放实现MediaPlayer
- Android4.4KK下遮盖p-sensor拨打电话无法自动灭屏的问题分析
- Android4.3 蓝牙BLE初步
- Android四大基本组件介绍与生命周期
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- android隐藏中间四位手机号
- Android 中的一些Manager