如何获取毫秒格式的日期?

问题描述 投票:0回答:4

我有一个来自 sqllite 数据库的格式化日期,要在图形视图中使用它,我需要将其格式化为一长串数字。

格式为:

2012-07-11 10:55:21

如何将其转换为毫秒?

java android date java-time datetime-parsing
4个回答
7
投票

您可以使用以下代码将字符串转换为 Date 对象:-

Date d = DateFormat.parse(String s)

然后使用内置方法将其转换为毫秒

long millisec = d.getTime();


6
投票

使用

date.getTime()

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd, HH:mm:ss");
formatter.setLenient(false);


String oldTime = "2012-07-11 10:55:21";
Date oldDate = formatter.parse(oldTime);
long oldMillis = oldDate.getTime();

0
投票

试试这个:

import java.util.*;


public class ConvertDateIntoMilliSecondsExample{

public static void main(String args[]){

//create a Date object  
Date date = new Date();
System.out.println("Date is : " + date);

//use getTime() method to retrieve milliseconds
System.out.println("Milliseconds since January 1, 1970, 00:00:00 GMT : "
                  + date.getTime());

    }

}

0
投票

java.time

2014 年 3 月,Java 8 引入了现代的

java.time
日期时间 API,取代了容易出错的旧版
java.util
日期时间 API
。新代码应使用
java.time
API*

使用现代日期时间 API 的解决方案

您的日期时间字符串没有时区或时区偏移信息。因此,将其解析为

LocalDateTime
并将结果转换为
Instant
,从中可以获得纪元毫秒数。

演示:

public class Main {
    public static void main(String[] args) {
        long millis = LocalDateTime
                .parse(
                        "2012-07-11 10:55:21",
                        DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
                .atZone(ZoneId.systemDefault())
                .toInstant()
                .toEpochMilli();
        System.out.println(millis);

        // Alternatively, convert your date-time string into ISO 8601 format, which is
        // also the default format of LocalDateTime.parse; therefore, you don't require
        // a DateTimeFormatter explicitly
        long epochMillis = LocalDateTime
                .parse("2012-07-11 10:55:21".replace(" ", "T"))
                .atZone(ZoneId.systemDefault())
                .toInstant()
                .toEpochMilli();
        System.out.println(epochMillis);
    }
}

输出:

1342004121000
1342004121000

在线演示

注意: 无论出于何种原因,如果您需要

java.util.Date
对象的
OffsetDateTime
实例,您可以按如下方式操作:

java.util.Date date = Date.from(odt.toInstant());

Trail:日期时间了解有关现代日期时间 API 的更多信息。


* 如果您收到

java.util.Date
的实例,请使用
java.time.Instant
 将其转换为 
Date#toInstant
,并根据您的要求从中派生
java.time
的其他日期时间类。

© www.soinside.com 2019 - 2024. All rights reserved.