我喜欢SupportDate在我的PHP项目中有一个类,像工具箱一样使用它,所以我也会在我的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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我从数据库中检索的值的用法:
last_event_placeholder.append(SupportDate.formatDate(last_event,null));
Run Code Online (Sandbox Code Playgroud)
值last_event是从SQLlite检索的字符串:2015-06-29 10:41:12
Log中的错误是
java.lang.IllegalArgumentException: Bad class: class java.lang.String
Run Code Online (Sandbox Code Playgroud)
在一排final String formattedDate = sdf.format(date);方法formatDate
谢谢您的帮助
DateFormat.format期望数字或日期,但您传递的是字符串.在传递日期字符串之前,您应该将其解析为日期,例如:
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
Date inputDate = inputFormat.parse(date);
Run Code Online (Sandbox Code Playgroud)
然后将此传递inputDate给您的SimpleDateFormat,如下所示:
final String formattedDate = sdf.format(inputDate);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助你:)
PS在这里你可以找到更多的答案引起:java.lang.IllegalArgumentException:坏类:类java.lang.String
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |