13

我有时间milliseconds,现在我想和这些分开timedatemilliseconds

我怎样才能做到这一点???

4

8 回答 8

25

你可以这样使用

Calendar cl = Calendar.getInstance();
cl.setTimeInMillis(milliseconds);  //here your time in miliseconds
String date = "" + cl.get(Calendar.DAY_OF_MONTH) + ":" + cl.get(Calendar.MONTH) + ":" + cl.get(Calendar.YEAR);
String time = "" + cl.get(Calendar.HOUR_OF_DAY) + ":" + cl.get(Calendar.MINUTE) + ":" + cl.get(Calendar.SECOND);
于 2012-12-02T10:08:11.463 回答
20

这个函数会给你一个毫秒的字符串日期

public static String getFormattedDateFromTimestamp(long timestampInMilliSeconds)
{
    Date date = new Date(); 
    date.setTime(timestampInMilliSeconds);
    String formattedDate=new SimpleDateFormat("MMM d, yyyy").format(date);
    return formattedDate;

}
于 2012-12-02T10:01:28.427 回答
4

转换millisecondsDate实例并将其传递给所选的格式化程序:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");

String myDate = dateFormat.format(new Date(dateInMillis)));
于 2016-05-11T11:41:47.427 回答
2

您可以将毫秒转换为日期对象,然后以时间字符串和另一个仅包含日期的字符串的格式提取日期

于 2012-12-02T09:32:13.817 回答
2

使用Calendar获取不同时间字段的值:

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeInMillis);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int monthOfYear = cal.get(Calendar.MONTH);
于 2012-12-02T10:05:47.920 回答
0

对 Kiran Kumar 的进一步回答

 public static String getFormattedDateFromTimestamp(long timestampInMilliSeconds, String dateStyle){
        Date date = new Date(); 
        date.setTime(timestampInMilliSeconds);
        String formattedDate=new SimpleDateFormat(dateStyle).format(date);
        return formattedDate;
}
于 2020-04-08T09:22:20.850 回答
0

java.time 和 ThreeTenABP

我建议 java.time,现代 Java 日期和时间 API,用于您的日期和时间工作:

    long millisecondsSinceEpoch = 1_567_890_123_456L;

    ZonedDateTime dateTime = Instant.ofEpochMilli(millisecondsSinceEpoch)
            .atZone(ZoneId.systemDefault());
    LocalDate date = dateTime.toLocalDate();
    LocalTime time = dateTime.toLocalTime();

    System.out.println("Date: " + date);
    System.out.println("Time: " + time);

我的时区(欧洲/哥本哈根)的输出:

Date: 2019-09-07
Time: 23:02:03.456

其他答案中使用的日期和时间类 -和Calendar-设计不佳且早已过时。这就是为什么我不建议使用它们中的任何一个,而是更喜欢 java.time。DateSimpleDateFormat

问题:java.time 不需要 Android API 级别 26 吗?

java.time 在较旧和较新的 Android 设备上都能很好地工作。它只需要至少Java 6

  • 在 Java 8 及更高版本以及更新的 Android 设备(从 API 级别 26 开始)中,现代 API 是内置的。
  • 在非 Android Java 6 和 7 中获得 ThreeTen Backport,现代类的后向端口(ThreeTen 用于 JSR 310;请参阅底部的链接)。
  • 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。并确保从org.threeten.bp子包中导入日期和时间类。

链接

于 2020-04-11T16:54:51.267 回答
0

您可以使用日期格式并将您的毫秒值设置为此构造函数的参数,遵循以下代码:

SimpleDateFormat SDF= new SimpleDateFormat("dd/MM/yyyy"); 
String date = SDF.format(new Date(millies)));
于 2021-04-05T12:10:18.593 回答