从Date()获取unix时间戳

Car*_*ven 76 java date

我可以Date()通过将long值放入Date()构造函数中将unix时间戳转换为对象.例如:我可以把它作为new Date(1318762128031).

但在那之后,我怎样才能从Date()对象中获取unix时间戳?

jac*_*bit 81

getTime()检索自1970年1月1日以来传递给构造函数的毫秒数.从那里获取Unix时间(相同,但在几秒钟内)应该不会太难.

  • @jackrabbit:实际上*getTime()*不会返回Unix时间戳,而是"Unix时间戳*1000".关于Unix时间戳的商定定义是它给出了自第二纪元以来的时间,而不是几毫秒; ) (45认同)
  • @TacticalCoder jackrabbit更准确:它以毫秒为单位返回unix-timestamp.是的,unix-timestamp同意在几秒钟内 - 但如果你的答案是真的,(`getTime()= unixTimestamp*1000`),`getTime()`总是会在结尾返回三个零,但事实上可以返回从"000"到"999"结尾的任何内容,这意味着它由于毫秒而具有更高的精度,而不仅仅是"*1000".含义:将实际的unixTimestamp*1000与`getTime()`结果进行比较只能在约0.1%的情况下成功. (3认同)

Ped*_*ito 39

要获得unix时间戳,timestamp我们需要划分Date()

Date currentDate = new Date();
currentDate.getTime() / 1000;
// 1397132691
Run Code Online (Sandbox Code Playgroud)

或者干脆:

long unixTime = System.currentTimeMillis() / 1000L;
Run Code Online (Sandbox Code Playgroud)

  • 或者更简洁:`new Date().getTime()` (2认同)

bha*_*ker 22

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class Timeconversion {
    private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale

    public long timeConversion(String time) {
        long unixTime = 0;
        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone
        try {
            unixTime = dateFormat.parse(time).getTime();
            unixTime = unixTime / 1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return unixTime;
    }
}
Run Code Online (Sandbox Code Playgroud)


wat*_*car 5

在Java 8中,使用新的日期库和getEpochSecond方法来获取时间戳很方便(秒数)。

Instant.now().getEpochSecond();