什么是SQlite和WinRT默认日期格式(Locale)

时间:2013-10-14 01:29:54

标签: sqlite windows-phone-8 winrt-xaml

美国的日期格式为MM / DD / YYYY,英国为DD / MM / YYYY。
当您首次打开设置时,WinRT平板电脑将根据TimeZone设置日期格式。

假设我正在设置我的WinRT平板电脑使用英国日期格式(DD / MM / YYYY)并使用此代码将日期插入SQLite。


Class Order
      {
        [PrimaryKey, AutoIncrement]
        public int SId { get; set; }
        public int CustId { get; set; }     
        public string No { get; set; }        
        public string Customer { get; set; }
        public DateTime Order_Date { get; set; }

      }



   using (var db = new SQLite.SQLiteConnection(DBPath))
     {
        var newOrder = new Order()
        {
           CustId = g_intCustId,
           Customer = txtBlkCustomer.Text.Trim(),
           Order_Date = DateTime.Today   

        };

   db.Insert(newOrder);


1)SQLite的日期格式存储是什么?美国或英国日期格式?

2)如何为SQLite数据库设置日期区域设置(美国日期或英国日期)?

3)如果完成上面的(2),那么基于日期的select语句(SQL语句)将基于语言环境集?

由于

2 个答案:

答案 0 :(得分:1)

我假设你正在使用

根据文档,DateTimeFormat参数中有一个SQLiteConnection´参数,用于指定在数据库中处理DateTime的方式:

  

Ticks - 使用DateTime.Ticks的值。

     

ISO8601 - 使用ISO-8601格式。使用UTC的“yyyy-MM-dd HH:mm:ss.FFFFFFFK”格式   日期时间值和本地的“yyyy-MM-dd HH:mm:ss.FFFFFFF”格式   DateTime值)。

     

JulianDay - 以天为单位的时间间隔   自公元前4713年1月1日起的一天中的一小部分。

     

UnixEpoch - 整体   自Unix时代(1970年1月1日)以来的秒数。

     

InvariantCulture - .NET的任何与文化无关的字符串值   框架可以解释为有效的DateTime。

     

CurrentCulture - 任何   .NET Framework可以将其解释为有效DateTime的字符串值   使用当前的文化。

默认为ISO8601。还有一个“自定义”DateTimeFormatString和一个DateTimeKind来指定UTF或本地日期时间。

答案 1 :(得分:0)

您绝不应将本地化日期存储在数据库中;如果语言环境发生变化,这将会中断,并且此类字符串无法正确排序。

使用格式yyyy-mm-ddthe only one supported by the internal SQLite date functions,以及唯一一个比较正常工作的格式),或者存储时间戳as numbers