addison_lin 发表于 2012-1-14 11:50:51

android.text.format文件大小和日期解析类

很多网友可能直接将自己的J2ME项目生硬的移植到Android平台,其实Google为我们提供好了文件大小和时间日期解析类,它位于android.text.format这个包中,它提供了强大的标准化解析方法:
       1. IP地址解析类 在android.text.format.Formatter中提供了String formatIpAddress(int addr) 这个方法可以轻松方便的将socket中的int型转成类似127.0.0.1的IP格式,需要注意的是Linux平台的字节顺序,即小字节序、低字节序little-endian。
       2. 文件大小解析类 细心的网友可能还看到了android.text.format.Formatter中的formatFileSize方法,该方法String formatFileSize (Context context, long number) ,第二个参数是long型,一般为File对象的最后修改时间或创建时间的方法,最终返回类似 12KB、5Bytes的值,20MB的字符串。
       3. 日期时间解析类 ,该类位于android.text.format.DateFormat这个package中,该类提供了Java中的三种时间对象,   
       提示大家下面三种方法为静态可以直接调用,如下:
final static CharSequenceformat(CharSequence inFormat, Date inDate)//传入Date对象
Given a format string and a Date object, returns a CharSequence containing the requested date.
final static CharSequenceformat(CharSequence inFormat, Calendar inDate)//Calendar对象
Given a format string and a Calendar object, returns a CharSequence containing the requested date.
final static CharSequenceformat(CharSequence inFormat, long inTimeInMillis)//long对象
Given a format string and a time in milliseconds since Jan 1, 1970 GMT, returns a CharSequence containing the requested date.
       我们可能看到了第一个参数均为inFormat这是一个CharSequence接口的String类型,它提供了灵活的时间格式解析字符串描述,提示大家注意大小写要区分,如
April 6, 1970 at 3:23am 例子,那么inFormat参数的写法和最终执行的结果如下对照,下面就以Android123的CWJ生日为例子如下
"MM/dd/yy h:mmaa" -> "11/03/87 11:23am"
"MMM dd, yyyy h:mmaa" -> "Nov 3, 1987 11:23am"
"MMMM dd, yyyy h:mmaa" -> "November3, 1987 11:23am"
"E, MMMM dd, yyyy h:mmaa" -> "Tues, November 3, 1987 11:23am"
"EEEE, MMMM dd, yyyy h:mmaa" -> "Tuesday, Nov 3, 1987 11:23am"
对于判断一个时间是否为24小时制式可以通过android.text.format.DateFormat类的static booleanis24HourFormat(Context context)方法来判断。
页: [1]
查看完整版本: android.text.format文件大小和日期解析类