一、获取当前时间
在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()方法获取时间戳,计算出两个日期之间的毫秒数差值。最后把毫秒数差值转换成天数。