我可以获得输出为
Wed May 11 15:36:08 IST 2016
,但是如何将日期转换为具有所需格式的字符串?
所需格式为:
12-05-2016 16:05:08 pm
我尝试的是,
public class Test {
public static void main(String args[]) throws ParseException{
String epoche="1462961108000";
Long initialLogTime = Long.valueOf(epoche);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(initialLogTime);
Calendar fromDateTime = calendar;
Calendar toDateTime = fromDateTime;
toDateTime.add(Calendar.MINUTE, 30);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss:aa");
String datestring = String.valueOf(fromDateTime.getTime());
String datestring1 = String.valueOf(toDateTime.getTime());
System.out.println(datestring); //here output is Wed May 11 15:36:08 IST 2016
System.out.println(datestring1); // here output is Wed May 11 15:36:08 IST 2016
Date dates = dateFormat.parse(datestring);
Date date1s = dateFormat.parse(datestring1);
System.out.println(dates);
System.out.println(date1s);
}
}
我收到的错误是:
Exception in thread "main" java.text.ParseException: Unparseable date: "Wed May 11 16:05:08 IST 2016"
at java.text.DateFormat.parse(DateFormat.java:357)
at test.Test.main(Test.java:27)
您需要相应地设置日期格式。这会对你有帮助
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss:aa");
System.out.println(dateFormat.format(fromDateTime.getTime()));
System.out.println(dateFormat.format(toDateTime.getTime()));
如果您使用的是java 8,则可以使用
LocalDate 日期 = LocalDate.now();
DateTimeFormatter 格式化程序 = DateTimeFormatter.ofPattern("dd-MMM-yyyy HH:mm:ss:aa");
System.out.println(date.format(formatter));
请尝试这个
public static void main(String[] args) {
String epoche = "1462961108000";
Date date = new Date(Long.parseLong(epoche));
DateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss:aa");
String strDate = sdf.format(date);
System.out.println(strDate);
}
输出
11-05-2016 15:35:08:PM
在 Android 中,将 11/10/2017 11:16:46 等字符串传递给函数 ConvertDateTime
public String ConvertUpdate(String strDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
try {
Date d = simpleDateFormat.parse(strDate);
simpleDateFormat = new SimpleDateFormat("dd MMM yy hh:mm a");
return simpleDateFormat.format(d);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
输出 2017 年 11 月 10 日上午 11:16
java.time
2014 年 3 月,Java 8 引入了现代的
java.time
日期时间 API,取代了容易出错的旧版java.util
日期时间 API。任何新代码都应使用 java.time
API。
Instant
使用
Instant#ofEpochMilli
.Instant
将获得的ZonedDateTime
转换为ZoneId
。DateTimeFormatter
格式化结果。通常,am/pm 标记显示为 clock-hour-of-am-pm (1-12)。不过,您可以在模式中使用 a
显示am/pm 标记以及一天中的小时 (0-23)。
演示:
public class Main {
public static void main(String[] args) {
String epoche = "1462961108000";
Instant instant = Instant.ofEpochMilli(Long.valueOf(epoche));
// Replace ZoneId.of("Asia/Dhaka") as required e.g. to ZoneId.systemDefault() if
// your requirement is to get the date-time in your JVM's time zone
ZonedDateTime zdt = instant.atZone(ZoneId.of("Asia/Dhaka"));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MM-uuuu HH:mm:ss a");
String dateString = zdt.format(dtf);
System.out.println(dateString);
}
}
输出:
11-05-2016 16:05:08 PM
从 Trail:日期时间了解有关现代日期时间 API 的更多信息。