使用sqlite进行时间的插入的时候,使用了

DateTime.ToString("s")  //s: 2008-06-15T21:15:07

插入到数据库之后,发现时间被加了8个小时

找了半天资料,才找到原因

This profile defines two ways of handling time zone offsets:

有两种方式处理时区的时差

Times are expressed in UTC (Coordinated Universal Time), with a special UTC designator ("Z").

如果是UTC时间的话,后面需要加Z表示。1994-11-05T13:15:30Z

Times are expressed in local time, together with a time zone offset in hours and minutes.

A time zone offset of "+hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes ahead of UTC.

A time zone offset of "-hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes behind UTC.

其它的时间,在年月日时分秒后面,通过+-时差来表示。

如果时间比UTC时间快的话,就用+hh:mm表示,后面的时间表示相差的时间。

如果时间比UTC时间慢的话,就用-hh:mm表示,后面的时间表示相差的时间。

+hh:mm和-hh:mm实际上表示的是时区,+08:00表示的是东八区,-05:00表示的是西五区

有两种方式来说明时间

1994-11-05T08:15:30-05:00 corresponds to November 5, 1994, 8:15:30 am, US Eastern Standard Time.

//时间是1994-11-05 08:15:30   表示的是西五区的时间,比UTC时间慢5个小时   换算成UTC时间的话,需要加上5个小时,就是1994-11-05 13:15:30

1994-11-05T16:15:30+08:00   表示的是东八区的时间,比UTC时间快8个小时   换算成UTC时间的话,需要减去8个小时,就是1994-11-05 13:15:30

1994-11-05T13:15:30Z corresponds to the same instant.//很明显是UTC时间

总结:

DateTime.ToString("s")  //s: 2008-06-15T21:15:07 

这个时间在存入SQLite数据库的时候,被当做UTC时间了,因为我的电脑里面设置的时区,是东八区的北京时间,所以被加上了8个小时存储

解决方法:

DateTime.ToString("yyyy-MM-dd HH:mm:ss") 使用这个,来存储就没有问题。

或者可以考虑设置SQLiteConnecttion.DateTimeKind

参考

Date and Time Formats

http://www.w3.org/TR/NOTE-datetime

DateTime.ToString Method (String)

http://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx

如何表示各个时区的时间DateTime.ToString()的更多相关文章

  1. DateTime.ToString格式化日期,使用DateDiff方法获取日期时间的间隔数

    一:DateTime.ToString格式化日期 二:代码 using System; using System.Collections.Generic; using System.Component ...

  2. C#DateTime.ToString 格式化时间字符串和数值类型转换为字符串

    我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34,如果要换成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到:Date ...

  3. Django时区导致的datetime时间比较报错

    我们使用python 的datetime模块比较Django数据库Datetime字段的时候,可能会出现报错: TypeError: can't compare offset-naive and of ...

  4. .NET WebFrom跨时区项目时间问题处理方法

    前段时间因为公司的一个 WebFrom 项目设计到跨时区的问题,处理了一段时间,终于解决了,写个博客记录一下,方便以后回顾以及给他人提供一个参考的方法. 本次的项目因为跨越了多个时区,在一些时间上会受 ...

  5. POCO库——Foundation组件之日期时间DateTime

    日期时间DateTime:内部提供多个设计计时器.日期.时区.时间戳等: Clock.h :Clock时钟计时类,_clock:Int64类型时钟值,CLOCKVAL_MIN.CLOCKVAL_MAX ...

  6. C# DateTime.ToString的坑

    当需要将时间类型转换为字符串类型时,一般直接使用datetime.ToString()方法即可 1.直接使用ToString(),不带任何参数,代码如下 static void Main(string ...

  7. Java 时区之间时间转换

    SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println(&qu ...

  8. 如何使不同时区的时间与京8区一致?(JS实现)

    如何使不同时区的时间与京8区一致?(JS实现) Update:2019/1/28 更简单的是使用这个函数(toDate): // 自定义日期格式如下(年月日都必须提供): // "2011- ...

  9. Python 日期和时间 —— datetime

    Python 日期和时间 —— datetime Python提供了多个内置模块用于操作日期时间,如calendar,time,datetime.calendar用于处理日历相关 :time提供的接口 ...

随机推荐

  1. Android 简单案例:onSaveInstanceState 和 onRestoreInstanceState

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widg ...

  2. shell脚本关闭tomcat

    使用shell脚本快速关闭tomcat,就是获取tomcat进程后,一起kill掉: #!/bin/sh #kill tomcat pid name=tomcat-emall pidlist=`ps ...

  3. VMware Authorization Service 未运行怎么解决

    操作步骤如下: 1.按win+r快捷键,输入services.msc,点击确定: 2.服务列表找到VMware Authorization Service 并双击: 3.修改启动类型为自动,点击应用, ...

  4. Log4Net的简单使用

    在前面的随笔中,已经异常处理过滤器中,我们已经将获取到的错误信息写到队列中去,然后又单独的线程对队列中的错误信息处理,将错误信息输出到制定的文件中,但是如果我们需要改变需求,打算将错误信息输出到数据库 ...

  5. Oracle表的维护(字段,重命名表名)

    案例:银行里建的开卡信息 字段 字段类型 Id Number name Varchar2(64) sex Char2() birth Date money Number(10,2) 创建银行卡表 cr ...

  6. Linux设置程序开机启动-tomcat开机启动

    假设我有一个tomcat应用需要开机启动. 前提你的JAVA环境变量已经配置好没有问题,检测方法如图 然后找到tomcat的目录,我的目录是 /home/yuqing_4.0/tomcat_share ...

  7. using the library to generate a dynamic SELECT or DELETE statement mysqlbaits xml配置文件 与 sql构造器 对比

    https://github.com/mybatis/mybatis-dynamic-sql MyBatis Dynamic SQL     What Is This? This library is ...

  8. Python开发【整理笔记】

    回顾笔记 学python半年,新知识不断填充,之前学的东西也忘的差不多,整理下笔记,把重点再加深下印象,算是读书拾遗吧.... 1.类继承.新式类.经典类 首先,新式类.经典类的概念只存在于Pytho ...

  9. 比特币BTC全节点搭建

    比特币BTC全节点搭建 #环境 ubuntu 16.4 #硬盘500GB #截止2018-12-31磁盘占用超过230GB #客户端安装 #下载页面 #https://bitcoin.org/zh_C ...

  10. HTTP返回码中301与302的区别(转)

    add by zhj:  区别 1.使用效果不同 302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址.因为服务器返回302代码,搜索引擎认为新的网址只是暂时的. 301重定向是永久的重定向, ...