跨应用程序的一致DateTime格式的Android方法

时间:2015-08-02 23:34:49

标签: java android datetime timestamp

我的应用程序查询SQLite DateTime字符串,我正在尝试编写一个方法,而不是在我的应用程序中使用该方法,以便DateTime时间戳的格式一致。到目前为止,我有,

public class DateTimeUtils {

    public static String formatDueDate(String queryResponse) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss z", Locale.US);
        Date result = new Date();
        try {
            result = sdf.parse(queryResponse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result.toString();
    }
}

等情况下使用
taskViewHolder.mDue.setText(formatDueDate(task.getDue().toString()));

我希望输出看起来像June 27, 20015, 5:30PM

原始日期时间字符串采用以下形式:2015-08-10T17:28:00.000-04:00

我的问题是当前产生的时间戳格式不正确,而是看起来像Sun Aug 02 17:29:03 EDT 2015而不是解析输入的时间戳,只返回当前的日期时间。

我相信这是因为我的格式化实际上是抛出一个异常而我只是返回当前的Date()对象。我应该更改什么才能正确解析日期时间字符串?

2 个答案:

答案 0 :(得分:0)

好吧,既然你在try块之外创建了Date对象,那么你是对的,如果有解析错误,那么当前日期将会返回。 SimpleDateFormat在parse方法中为您工作。通过将Date变量赋值为null而不是实例化新对象,可以减少当前日期返回的可能性。

答案 1 :(得分:0)

如果您已经获得了正确的Date类,也许您可​​以通过Calendar类和StringBuilder类生成您的特殊格式。

如下所示:

{{1}}

希望这可以帮到你。