0

我使用 PostgreSQL 数据库服务器。一列有“带时区的时间戳”,我通过 XML 上传时间字符串,如“2012-07-11 04:45:18+GMT+05:30”,但它接受这种格式“2012-02-16 19:47”: 22.652+05:30'

那么,如何在 Android 上格式化时间字符串?下面是我的功能。

Calendar c=Calendar.getInstance();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ssZ");
Log.v("AKDN", "Time string is:"+formatter.format(c.getTime()));
return formatter.format(c.getTime());
4

1 回答 1

1

这对我来说很好:

private String getTime()
{
    Calendar c = Calendar.getInstance();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SZ");
    return formatter.format(c.getTime());
}

就我而言,它输出:

2012-07-11 06:32:46.118-0600

编辑:
您可以将“ ”添加到您的字符串中。

或者您可以创建另一个函数来格式化时区。像这样的东西:

private String formatTimeZone(TimeZone tz)
{
    DecimalFormat format = new DecimalFormat("00");
    String timeZone = new String("");
    int offset = tz.getRawOffset();

    if(offset != 0)
    {
        int hours = Math.abs((offset / (60 * 1000)) / 60);
        int minutes = Math.abs((offset / (60 * 1000)) % 60);
        timeZone += offset < 0 ? "-" : "+";
        timeZone += format.format(hours);
        timeZone += ":";
        timeZone += format.format(minutes);
    }

    return timeZone;
}
于 2012-07-11T12:33:48.830 回答