System.currentTimeMillis() 和 calendar.getTimeInMillis() 是一样的么
时间: 2023-10-25 10:33:05 浏览: 187
不完全相同。`System.currentTimeMillis()` 返回当前时间的毫秒数,以自协调世界时(UTC)1970年1月1日午夜开始的时间为基准。它是一个静态方法,直接返回当前时间。
`calendar.getTimeInMillis()` 是 `Calendar` 类的一个方法,它返回给定 `Calendar` 对象的时间值,以自协调世界时(UTC)1970年1月1日午夜开始的时间为基准。它需要你先创建一个 `Calendar` 对象,并设置其时间值,然后才能调用该方法。
总的来说,它们都可以用来获取当前时间的毫秒数,但是使用方式和实现细节有所不同。
相关问题
Android 通过System.currentTimeMillis() 获取前两个月日期
Android 中,如果你想要获取当前日期之前的两个月,你可以使用 `Calendar` 类配合 `System.currentTimeMillis()` 函数来实现。首先,你需要创建一个 Calendar 实例,然后设置它到过去的某个时间点。这里是步骤:
1. 创建一个 Calendar 对象并将其初始化为当前时间:
```java
Calendar calendar = Calendar.getInstance();
```
2. 调整月份,向前回溯两个月:
```java
calendar.add(Calendar.MONTH, -2); // 减去两个月
```
3. 获取指定日期的时间戳:
```java
long pastTwoMonthsTimestamp = calendar.getTimeInMillis();
```
4. 如果需要格式化日期,可以转换成 Date 对象再显示:
```java
Date pastDate = new Date(pastTwoMonthsTimestamp);
String formattedDate = SimpleDateFormat.getDateTimeInstance().format(pastDate);
```
注意:`add()` 方法的第一个参数表示调整的类型,第二个参数是调整的数量。`MONTH` 表示月份。
rightNow.getTimeInMillis()做减法
`rightNow.getTimeInMillis()` 返回当前时间的毫秒数,我们可以利用这个方法来进行时间的计算。
如果要计算两个时间之间的时间差,可以将两个时间的毫秒数相减。例如:
```
Calendar rightNow = Calendar.getInstance();
long currentTimeMillis = rightNow.getTimeInMillis(); // 获取当前时间的毫秒数
// 假设有一个时间戳为 1612345678900 的时间
long timestamp = 1612345678900L;
long diff = currentTimeMillis - timestamp; // 计算当前时间与指定时间的毫秒差
System.out.println("距离指定时间已过去:" + diff / 1000 + "秒"); // 将毫秒转换为秒并输出
```
上述代码中,我们获取了当前时间的毫秒数,并假设有一个时间戳为 `1612345678900` 的时间。然后通过计算两个时间的毫秒差,得到距离指定时间已经过去的秒数,并最终输出结果。需要注意的是,因为 `rightNow.getTimeInMillis()` 和时间戳都是毫秒级别的精度,所以需要将毫秒数除以1000来将其转换为秒。
阅读全文