SimpleDateFormat format =new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
format.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
try {
long diff2=format.parse(accidentReports.getAccidentDate());
}
得到这个输出:: Thu Dec 17 15:37:43 GMT + 05:30 5
答案 0 :(得分:3)
如果您需要日期对象表单字符串使用:
Date date=null;
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
String temp = "Thu Dec 17 15:37:43 GMT+05:30 2015";
try {
date = formatter.parse(temp);
Log.e("formated date ", date + "");
} catch (ParseException e) {
e.printStackTrace();
}
你的OutPut是
Thu Dec 17 15:37:43 GMT+05:30 2015
:
在日期对象
再次将其转换为字符串:
String formateDate = new SimpleDateFormat("MM-dd-yyyy").format(date);
Log.v("output date ",formateDate);
现在你的输出是:
12-17-2015
答案 1 :(得分:2)
在 Kotlin 中,
private fun convertToCustomFormat(dateStr: String?): String {
val utc = TimeZone.getTimeZone("UTC")
val sourceFormat = SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy")
val destFormat = SimpleDateFormat("dd-MMM-YYYY HH:mm aa")
sourceFormat.timeZone = utc
val convertedDate = sourceFormat.parse(dateStr)
return destFormat.format(convertedDate)
}
输入日期:
Sat Dec 19 12:50:57 GMT+05:30 2020
输出日期格式:
19-Dec-2020 12:50 PM
说明:
答案 2 :(得分:2)
java.util
日期时间 API 及其格式化 API SimpleDateFormat
已过时且容易出错。建议完全停止使用它们并切换到 modern date-time API* 。
使用现代日期时间 API:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String strDateTime = "Thu Dec 17 15:37:43 GMT+05:30 2015";
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("E MMM d H:m:s O u", Locale.ENGLISH);
OffsetDateTime odt = OffsetDateTime.parse(strDateTime, dtfInput);
// Default string i.e. OffsetDateTime#toString
System.out.println(odt);
// A custom string
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssO", Locale.ENGLISH);
String formatted = odt.format(dtfOutput);
System.out.println(formatted);
}
}
输出:
2015-12-17T15:37:43+05:30
2015-12-17T15:37:43GMT+5:30
从 Trail: Date Time 了解有关现代日期时间 API 的更多信息。
* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 & 7. 如果您正在为 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring 和 How to use ThreeTenABP in Android Project。
答案 3 :(得分:0)
请检查我以前用过的解决方案:
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
try {
String temp = "Thu Dec 17 15:37:43 GMT+05:30 2015";
Date expiry = formatter.parse(temp);
} catch (Exception e) {
e.printStackTrace();
}
答案 4 :(得分:0)
很抱歉,这个答案可能来晚了,但可能会在不久的将来对任何人有所帮助。 只要在传递日期(2015年12月17日星期四15:37:43 GMT + 05:30)时调用此简单方法,就会得到如下结果:2015-12-17
private String getFormattedDate(Date timeZone){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = df.format(timeZone);
return formattedDate;
}
请记住,这是日期格式的值,而不是字符串值。
如何致电:
getFormattedDate(date);