我喜歡在我的PHP項目中使用SupportDate
類,以便像使用工具箱一樣使用它,所以我也會在我的Android項目中使用它。Java/Android:如何格式化日期?
長的故事作了簡短:
這是SupportDate
類:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
/**
* Created by Alessandro on 28/06/2015.
*/
public class SupportDate {
// Suppress default constructor for noninstantiability
private SupportDate() {
throw new AssertionError();
}
public static String getCurrentDate(String format) {
if (format==null){
format = "yyyy-MM-dd HH:mm:ss";
}
final SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
final String utcTime = sdf.format(new Date());
return utcTime;
}
public static String formatDate(String date, String format){
if (date==null){
date = getCurrentDate(null);
}
if (format==null){
format = "dd-MM-yyyy";
}
final SimpleDateFormat sdf = new SimpleDateFormat(format);
final String formattedDate = sdf.format(date);
return formattedDate;
}
}
這是我的使用,從數據庫中檢索到的值:
last_event_placeholder.append(SupportDate.formatDate(last_event,null));
的last_event
值是從SQLlite檢索到的字符串:2015-06-29 10:41:12
並在日誌中的錯誤是
java.lang.IllegalArgumentException: Bad class: class java.lang.String
的方法formatDate
的final String formattedDate = sdf.format(date);
排謝謝你的幫助
你最關心的是什麼?你想格式化日期? –
是的,我想格式化日期dinamyc,在方法中傳遞格式作爲參數。謝謝 – sineverba
我不明白你想要什麼。我給'20150303'和'yyyyMMdd'格式,是否返回字符串'2015-03-03 00:00:00'?而你使用SimpleDateFormat.format錯誤。它應該把Date對象作爲參數,而不是String。 http://developer.android.com/reference/java/text/DateFormat.html#format(java.util.Date) – calvinfly