如何使用时区格式化sqlite中的日期时间?

时间:2014-04-15 06:02:23

标签: xcode sqlite timezone

例如我有这个日期2010年1月5日14:00星期三gmt-8 我如何实现这一点,以便我可以用时区保存它?,

我可以使用带有yyyy-MM-dd hh:mm的nsformatter保存此内容 并保存为

2010-01-05 14:00

但是w / timezone怎么样?

(它应以日期时间格式保存..不是文本格式)

2 个答案:

答案 0 :(得分:1)

你可以使用[格式setDateFormat:@" yyyy-MM-dd hh:mm a"]为时区提供这样的输出" 2010-01-05 02:00 PM&# 34;

或 [格式setDateFormat:@" MMM dd,yyyy hh:mm a"]

答案 1 :(得分:-1)

将时区放在另一列中,您不会破坏SQLLITE的有限现有日期功能。使用alter table语句将列添加到sqllite非常容易。 Android SQLite Database, WHY drop table and recreate on upgrade

SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值:

TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC. 

应用程序可以选择以任何格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。