如何在android中获取毫秒的日期

时间:2012-12-02 09:26:38

标签: android datetime android-date

我有时间在milliseconds,现在我希望从这些time中分离 datemilliseconds

我该怎么办?

8 个答案:

答案 0 :(得分:23)

你可以像这样使用

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);

答案 1 :(得分:18)

此函数将为您提供一个毫秒的字符串日期

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

}

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeInMillis);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int monthOfYear = cal.get(Calendar.MONTH);

答案 4 :(得分:2)

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

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

String myDate = dateFormat.format(new Date(dateInMillis)));

答案 5 :(得分: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;
}

答案 6 :(得分: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

其他答案-CalendarDateSimpleDateFormat中使用的日期和时间类的设计很差,而且已经过时了。这就是为什么我不建议使用其中任何一个,而更喜欢java.time的原因。

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

java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6

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

链接

答案 7 :(得分:0)

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

SimpleDateFormat SDF= new SimpleDateFormat("dd/MM/yyyy"); 
String date = SDF.format(new Date(millies)));