8

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

格式为:

2012-07-11 10:55:21

如何将其转换为毫秒?

4

4 回答 4

7

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

Date d = DateFormat.parse(String s)

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

long millisec = d.getTime();

于 2012-07-11T16:23:37.290 回答
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();
于 2012-07-11T16:22:43.453 回答
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());

    }

}
于 2012-07-11T16:21:00.307 回答
0

java.time

使用现代日期时间 API *java.time的解决方案:

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        // Test
        System.out.println(toMillis("2012-07-11 10:55:21"));
    }

    public static long toMillis(String strDateTime) {
        // Replace the parameter, ZoneId.systemDefault() which returns JVM's default
        // timezone, as applicable e.g. to ZoneId.of("America/New_York")
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("u-M-d H:m:s", Locale.ENGLISH)
                                    .withZone(ZoneId.systemDefault());

        ZonedDateTime zdt = ZonedDateTime.parse(strDateTime, dtf);
        
        Instant instant = zdt.toInstant();
        
        return instant.toEpochMilli();
    }
}

输出:

1342000521000

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


*无论出于何种原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用ThreeTen-Backport,它将大部分java.time功能向后移植到 Java 6 和 7。如果您正在为 Android 项目和您的 Android API 工作level 仍然不符合 Java-8,请检查Java 8+ APIs available through desugaringHow to use ThreeTenABP in Android Project

于 2021-05-10T10:57:49.327 回答