我希望这种方法可以在几毫秒内转换并获得价值

时间:2019-04-13 11:45:17

标签: java android datetime

我该怎么做?我尝试了很多,但是无法正常工作。

public static String getDateTime() {
        String dateStr = "";
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateStr = dateFormat.format(date);
        return dateStr;
    }

请其他人纠正从上述日期格式返回毫秒的另一种方法。当然!在我的数据库中,我存储以下值:2019-04-17 17:11:02->我希望使用一种方法将此值转换为毫秒。这样我就调用新方法并传递该变量值。

3 个答案:

答案 0 :(得分:1)

尝试:-

       long timeInMilliseconds = 0;
        String givenDateString = "2019-04-17 17:11:02";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date mDate = sdf.parse(givenDateString);
            timeInMilliseconds = mDate.getTime();
        } catch (ParseException e) {
                    e.printStackTrace();
        }

String timeInMilliseconds = String.valueOf(timeInMilliseconds);

答案 1 :(得分:1)

 public static long milisecondsFromDate(String dateStr) {

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date date = formatter.parse(dateStr);
        return date.getTime();
    } catch (Exception e) {
        Log.e("Tag", "Wrong date Format");
    }
    return -1;
}

答案 2 :(得分:1)

出于您的原因,我强烈建议使用Java8日期/时间API,例如:

public static void main(String[] args) {
    System.out.println(getDateTime());
}

public static String getDateTime() {
    String dateStr = "2019-04-17 17:11:02";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    LocalDateTime localDateTime = LocalDateTime.parse(dateStr, formatter);

    return String.valueOf(localDateTime.toInstant(ZoneOffset.UTC).getEpochSecond());
}