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