获取PostgreSQL的格式化时间字符串

时间:2012-07-11 12:06:44

标签: java android postgresql

我使用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());

1 个答案:

答案 0 :(得分: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;
}