[android] UTC Time

UTC Time

引用百度百科的说法,协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。


为什么会提到UTC Time

工作中的项目,在pc向android获取图片信息过程中,需要android提供图片最后修改的时间,这个数据是可以直接在content provider的数据库中查到的,存在数据库中是一个Long类型的数据,我们在取到这个数据后需要把它转化成可读的字符串。通过
/**
	 * 
	 * @param time if you send a second date, please * 1000
	 * @return a String like yyyy-MM-dd HH:mm:ss
	 */
	public static String parseLong2Date(long milliseconds) {
		Date d = new Date(milliseconds);
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String t = formatter.format(d);
		return t;
	}

方法进行转换。

那么问题来了

当我们处在不同的时区时,查看最后修改的时间应该是不同的,android是怎么做到的呢?
这里我没有做很深的细究,只是简单做个测试,从测试结果来看android api帮我们搞定了这个细节。

简单测试

1. 从pc上copy一个test.jpg到android sdcard上,用文件管理工具查看test.jpg的属性,查看last modified date,记录时间(2012-01-27 12:29:52)
2. 切换到android setting设置页,设置时区比自己早一个时区(如中国杭州是东八区,我们可以调整为tokyo东九区)
3. 再次查看last modified date属性,我们会发现这时的属性值比之前提前了一个小时(2012-01-27 13:29:52)

得出结论

数据库中存储的是UTC时间,android系统自身会根据时区不同,修改显示的时间


最后

对android api中是如何实现该功能有兴趣的同学,把研究结果分享出来看看吧

你可能感兴趣的:(android开发)