Java 在Android中尝试将字符串转换为日期时间时出错

Java 在Android中尝试将字符串转换为日期时间时出错,java,android,date,datetime,Java,Android,Date,Datetime,我是Android新手,对此我有一个问题。我想将这个日期时间字符串“EEE MMM dd HH:mm:ss Z yyyy”转换为“HH:mm”。这是我的字符串: String date = "Mon Sep 28 19:49:26 GMT+07:00 2015"; 我试着像这样转换它,但失败了,我看不到异常是什么,因为异常e总是空的 private String convertDate(String date) { try { SimpleDateFormat form

我是Android新手,对此我有一个问题。我想将这个日期时间字符串“EEE MMM dd HH:mm:ss Z yyyy”转换为“HH:mm”。这是我的字符串:

String date = "Mon Sep 28 19:49:26 GMT+07:00 2015";
我试着像这样转换它,但失败了,我看不到异常是什么,因为
异常e
总是空的

private String convertDate(String date) {
    try {
        SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
        Date d = format.parse(date);
        SimpleDateFormat serverFormat = new SimpleDateFormat("HH:mm");
        return serverFormat.format(d);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}
那么我如何才能得到“HH:mm”或者如何转换它呢?转换函数有问题吗?

Locale 把你的电话号码设置为

场所 把你的电话号码设置为


异常e
如何始终为空?这将引发另一个
NullPointerException
。我尝试同时使用ParseException和Exception。但当我使用断点来查看发生了什么时,它总是空的!也许你是对的。当我们转换DateTime时,Android似乎强迫我们确定语言环境,
异常e
怎么可能总是空的?这将引发另一个
NullPointerException
。我尝试同时使用ParseException和Exception。但当我使用断点来查看发生了什么时,它总是空的!也许你是对的。当我们转换datetimeWOW时,Android似乎强迫我们确定区域设置!终于成功了,非常感谢!你刚刚救了我的脑袋。hahabut我想知道,当我在eclipse中实现这个方法时,它工作正常。为什么我不能用Java Android?我不确定,但我猜当eclipse PC使用英语local作为defulat时,Android有自己的本地区,我也这么想。但我的问题中有很多问题都是一样的,但它们并没有涉及到语言环境。他们只是在控制台中给出解决方案,而不是在Android应用程序中。这让我非常高兴confused@JustinVăn为了提供信息,你可能会发现这个问题。哇!终于成功了,非常感谢!你刚刚救了我的脑袋。hahabut我想知道,当我在eclipse中实现这个方法时,它工作正常。为什么我不能用Java Android?我不确定,但我猜当eclipse PC使用英语local作为defulat时,Android有自己的本地区,我也这么想。但我的问题中有很多问题都是一样的,但它们并没有涉及到语言环境。他们只是在控制台中给出解决方案,而不是在Android应用程序中。这让我非常高兴confused@JustinVăn您可能会发现这个问题提供了信息。
    ... = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);

    ... = new SimpleDateFormat("HH:mm", Locale.ENGLISH);