pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

SQLite.Net-PCL 如何處理 UTC 時(shí)間

How SQLite.Net-PCL handle UTC time(SQLite.Net-PCL 如何處理 UTC 時(shí)間)
本文介紹了SQLite.Net-PCL 如何處理 UTC 時(shí)間的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

限時(shí)送ChatGPT賬號(hào)..

我正在使用以下代碼:

使用 new SQLite.Net.SQLiteConnection(new SQLitePlatformWinRT(), DBPath) 獲取 SQLiteConnection并創(chuàng)建表.

類包含日期時(shí)間數(shù)據(jù)類型

class 交易{[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]公共 int QId { 獲取;放;}公共日期時(shí)間購(gòu)買日期{獲取;放;}公共整數(shù)金額{get;set;}公共字符串 ItemCode {get;set;}}

插入數(shù)據(jù)如下:

var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);var newItem = new Transaction(){購(gòu)買日期 = 日期時(shí)間.現(xiàn)在,金額 = 100,項(xiàng)目代碼 = "ABC-C10"};db.Insert(newItem);

日期將存儲(chǔ)為 Ticks(例如 636071680313888433),這是 UTC 時(shí)間.

1) 使用上面的 DateTime.Now,如果我的電腦時(shí)間設(shè)置是

1a) 英國(guó)時(shí)間,

上面的代碼:purchase = DateTime.Now 能正確轉(zhuǎn)換嗎?

1b) 在美國(guó)時(shí)間,

上面的代碼:purchase = DateTime.Now 能正確轉(zhuǎn)換嗎?

如何在 SQL 語(yǔ)句中處理這個(gè)勾號(hào)?

如何從某個(gè)日期范圍內(nèi)選擇所有交易?比如說,2016 年 7 月 10 日到 2016 年 7 月 20 日?

謝謝

解決方案

處理日期最安全的方法是使用 DateTimeOffset 類型而不是 DateTime.

DateTime 不包含創(chuàng)建時(shí)區(qū)的信息,它只知道它是 UTC 時(shí)間還是本地時(shí)間,如果數(shù)據(jù)要在不同的地方使用.

DateTimeOffset 不僅包含時(shí)間和日期信息,還包含時(shí)區(qū),這意味著結(jié)果將始終如您所愿.

使用方式?jīng)]有區(qū)別,只是改變了類型:

class 交易{[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]公共 int QId { 獲取;放;}公共日期時(shí)間偏移購(gòu)買日期{獲取;放;}公共整數(shù)金額{get;set;}公共字符串 ItemCode {get;set;}}

對(duì)于數(shù)據(jù)庫(kù)訪問:

var db = new SQLite.Net.SQLiteConnection(新 SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);var newItem = new Transaction(){PurchaseDate = DateTimeOffset.Now,//或使用DateTimeOffset.UtcNow作為UTC日期時(shí)間金額 = 100,項(xiàng)目代碼 = "ABC-C10"};db.Insert(newItem);

I am using below code:

using new SQLite.Net.SQLiteConnection(new SQLitePlatformWinRT(), DBPath) to get SQLiteConnection and create table.

Class contain DateTime DataType

class Transaction 
    {
        [SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
        public int QId { get; set; }
        public DateTime PurchaseDate { get; set; }  
        public int Amount {get;set;}
        Public string ItemCode {get;set;}      
    }

Insert Data As follows:

var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);

 var newItem = new Transaction()
  {  
     PurchaseDate = DateTime.Now,            
     Amount = 100,
     ItemCode = "Abc-C10"               
  };

 db.Insert(newItem);

The date will be stored as Ticks(e.g. 636071680313888433) and this is UTC time.

1) using above DateTime.Now, If my Computer time setting is

1a) in British Time,

will the above code : purchase = DateTime.Now be converted correctly?

1b) in Usa Time,

will the above code : purchase = DateTime.Now be converted correctly?

How to handle this tick in SQL-statement?

How to select all transaction from ,say, a date range ? say , 2016-07-10 to 2016-07-20 ?

Thanks

解決方案

The safest way to work with dates is to use the DateTimeOffset type instead of DateTime.

DateTime does not contain the information about the time zone in which it was created, all it knows is whether it is in UTC or local time, which is not enough if the data is going to be used in different locations.

DateTimeOffset contains not only the time and date information, but also the time zone, which means the result will always be what you expect.

There are no differences in the way it is used, just change the type:

class Transaction 
{
    [SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
    public int QId { get; set; }
    public DateTimeOffset PurchaseDate { get; set; }  
    public int Amount {get;set;}
    Public string ItemCode {get;set;}      
}

For database access:

var db = new SQLite.Net.SQLiteConnection(
   new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);

var newItem = new Transaction()
  {  
     PurchaseDate = DateTimeOffset.Now, //or use DateTimeOffset.UtcNow for UTC datetime           
     Amount = 100,
     ItemCode = "Abc-C10"               
  };

 db.Insert(newItem);

這篇關(guān)于SQLite.Net-PCL 如何處理 UTC 時(shí)間的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Dynamically creating a placeholder to insert many column values for a row in SQLite table(動(dòng)態(tài)創(chuàng)建占位符以在 SQLite 表中為一行插入多個(gè)列值)
How to make SQLite SELECT query in C correctly?(如何在 C 中正確地進(jìn)行 SQLite SELECT 查詢?)
Timestamp with 9 digits in SQLite file(SQLite 文件中的 9 位時(shí)間戳)
Replace path string in SQLite DB causes unexpected violated unique constraint(替換 SQLite DB 中的路徑字符串導(dǎo)致意外違反唯一約束)
reading in many tables from SQLlite databases and combining in R(從 SQLlite 數(shù)據(jù)庫(kù)中讀取許多表并在 R 中組合)
defining a quot;VARIANTquot; column type in SQLite?(定義“變體SQLite 中的列類型?)
主站蜘蛛池模板: 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 西门子代理商_西门子变频器总代理-翰粤百科 | 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 书信之家_书信标准模板范文大全| 无缝方管|无缝矩形管|无缝方矩管|无锡方管厂家 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 小型单室真空包装机,食品单室真空包装机-百科 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 |