[英]Convert milliseconds to Date in specific format
使用以下代碼,輸出為15-Mar-2016 06:24:41.296PM
Date sDate=new Date();
SimpleDateFormat pattern = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.SSSa");
System.out.println(pattern .format(sDate));
如果我想要輸出為15-Mar-2016 06:00:00.0PM可以嗎?
您可以使用單引號在格式化的日期中插入文字字符串,而不是使用Calendar
並將日期的部分重置為零:
SimpleDateFormat pattern = new SimpleDateFormat("dd-MMM-yyyy hh:'00:00.0'a");
根據您是要截斷(即,地板)還是四舍五入到最接近的小時,您可以執行以下操作之一:
final long MS_PER_HOUR = 1000L * 60 * 60;
SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.SSSa");
long now = System.currentTimeMillis();
long trunc = (now / MS_PER_HOUR) * MS_PER_HOUR;
long round = ((now + MS_PER_HOUR / 2) / MS_PER_HOUR) * MS_PER_HOUR;
System.out.println("now: " + fmt.format(new Date(now)));
System.out.println("trunc: " + fmt.format(new Date(trunc)));
System.out.println("round: " + fmt.format(new Date(round)));
這將在 09:00:00 和 09:29:59 之間的時間內生成此輸出
now: 15-Mar-2016 09:15:37.721AM
trunc: 15-Mar-2016 09:00:00.000AM
round: 15-Mar-2016 09:00:00.000AM
並且,在 09:30:00 和 09:59:59 之間的時間
now: 15-Mar-2016 09:45:50.925AM
trunc: 15-Mar-2016 09:00:00.000AM
round: 15-Mar-2016 10:00:00.000AM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.