我有时间在milliseconds
,现在我希望从这些time
中分离 date
和milliseconds
。
我该怎么办?
答案 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(现代的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
,Date
和SimpleDateFormat
中使用的日期和时间类的设计很差,而且已经过时了。这就是为什么我不建议使用其中任何一个,而更喜欢java.time的原因。
java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。答案 7 :(得分:0)
您可以使用日期格式并将毫秒值设置为此构造函数的参数,请遵循以下代码:
SimpleDateFormat SDF= new SimpleDateFormat("dd/MM/yyyy");
String date = SDF.format(new Date(millies)));