您的位置:

Android获取系统时间的多个方面详解

一、获取当前时间

在Android中,我们可以使用系统类Calendar来获取当前系统时间。代码如下:

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; //注意月份需要加1
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);

String currentTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;

上述代码中,我们通过Calendar.getInstance()获取当前的Calendar实例,然后使用get()方法获取各个时间字段,并把它们拼接成一个字符串。需要注意的是,月份需要加1,时间格式可以根据需求自己定义。

除了使用Calendar类获取时间,我们还可以使用System.currentTimeMillis()方法获取当前时间的毫秒数。代码如下:

long currentTimeMillis = System.currentTimeMillis();

上述代码中,我们直接调用System.currentTimeMillis()方法即可获取当前时间的毫秒数,精确到毫秒。

二、时间格式转换

有时候我们需要把时间转换成特定的格式,这时可以使用SimpleDateFormat类。代码如下:

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatTime = sdf.format(calendar.getTime());

上述代码中,我们先获取Calendar实例,然后创建一个SimpleDateFormat对象,指定需要转换成的格式。最后调用sdf.format()方法,把Calendar对象转换成字符串。

三、获取未来或过去的时间

在Android中,我们可以使用Calendar类获取未来或过去的时间。代码如下:

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 1); //获取明天的时间
calendar.add(Calendar.MONTH, -1); //获取一个月前的时间
Date date = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(date);

上述代码中,我们使用add()方法来获取未来或过去的时间,当向后移动时间时,可以使用正数,向前移动时间时,可以使用负数。我们通过转换后的日期对象,创建一个SimpleDateFormat实例,然后把日期格式化成字符串。

四、获取时间戳

在Android中,我们可以使用System.currentTimeMillis()方法来获取时间戳。代码如下:

long timestamp = System.currentTimeMillis();

上述代码中,我们直接调用System.currentTimeMillis()方法即可获取当前时间的时间戳,以毫秒为单位。

五、获取指定时区的时间

在Android中,我们可以使用SimpleDateFormat类来获取指定时区的时间。代码如下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); //设置时区为东八区
String time = sdf.format(new Date());

上述代码中,我们创建了一个SimpleDateFormat实例,指定时间格式。然后使用setTimeZone()方法设置时区,最后把Date对象转换成字符串。

六、获取日期差值

在Android中,我们可以使用Calendar类来计算日期差值。代码如下:

Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.set(2021, 10, 1);
c2.set(2021, 10, 15);
long diff = (c2.getTimeInMillis() - c1.getTimeInMillis()) / (1000 * 60 * 60 * 24);

上述代码中,我们创建了两个Calendar实例,分别表示两个日期,然后通过getTimeInMillis()方法获取时间戳,计算出两个日期之间的毫秒数差值。最后把毫秒数差值转换成天数。