学了这么久的安卓,一共学到了三种获取系统时间的方法,分别是SimpleDateFormat、Calendar和Time
1、SimpleDateFormat
SimpleDateFormat一共有两个包
import android.icu.text.SimpleDateFormat;和
import java.text.SimpleDateFormat;需要主要的是
import android.icu.text.SimpleDateFormat;只适用于API24(6.0)及其以上的版本
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); String s = simpleDateFormat.format(date);2、Calendar
同样的Calendar也有两个包,分别是
import java.util.Calendar;和
import android.icu.util.Calendar;同样的
import android.icu.util.Calendar;
也只适用于API24以上的版本
Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DATE); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.getActualMaximum(Calendar.SECOND); String s1 = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;3、Time
这个方法,现在已经过时了,一般不会使用这个方法,使用时一定要注意导入的是下面的这个包,否则会报错的
import android.text.format.Time;
Time time = new Time(); time.setToNow(); int y = time.year; int mo = time.month + 1; int d = time.monthDay; int h = time.hour; int mi = time.minute; int se = time.second; String s2 = y + "-" + mo + "-" + d + " " + h + ":" + mi + ":" + se;
三种方法都可以获取到系统的时间,但是需要注意的是Calendar和Time直接获取的系统的月份要比实际的月份少一个月,据说是由于安卓的月份是从0到11,所以才会出现这样的问题,这也就是为什么Calendar和Time获取到的月份要加1的原因,虽然这个解释是我目前查到的唯一的解释,但是我对他的真实性比较怀疑,毕竟SimpleDateFormat获取到的时间是正确的啊