首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure时区和javascriptserializer对象

Azure时区和javascriptserializer对象
EN

Stack Overflow用户
提问于 2011-06-20 01:50:44
回答 2查看 922关注 0票数 3

我在Windows Azure ( http://ipredikt.com )上有一个基于预测的应用程序。据我所知,Azure的时钟是与GMT时区同步的。这是我遇到的一个问题:

假设我有一个类型为DateTime、名为CreateDate的DB字段,并将其值设置为2011年6月10日上午12:30当创建新的预测时。如果我查看一下db表,日期是正确设置的。我不会以任何方式接触或更改此值。但是,当我使用我们的API读取值时,序列化它并将其发送到客户端,我得到了一个值为2011年6月9日下午5:30的日期( API dll也位于云上,并且可能与DB并置在一起。)

我的客户端浏览器运行在太平洋时区( PST ),看起来7小时的差异是由于PST和GMT之间的差异。用于序列化该值的API代码类似于:

新串行器= System.Web.Script.Serialization.JavaScriptSerializer JavaScriptSerializer();

返回serializer.Serialize(dataObject);

这是JavaScriptSerializer对象中的一个错误,还是有什么技巧可以修复这个增量?基本上,我不希望.NET框架以任何方式干扰这个值,我只希望DB字段按原样返回。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 02:27:28

当你将DateTime对象传递给Azure时,它的种类等于本地。

(2011年06月10日12:30-07)

但是,当您将其保存到数据库时,区域信息将丢失。随后,当从数据库中读取此字段时,它会创建具有协调一致的区域的DateTime ( 2011年6月10日12:30 a 0)

最终,您的客户端会错误地读取日期时间。

有几个选项可以解决此问题。

1)在方法参数和数据库中,将DateTime转换为DateTimeOffset。这将保证您的本地区域(即PST)将保存在数据库中

2)使用DateTime.SpecifyKind( DateTime,DateTimeKind.Unspecified) -以这种方式,未指定DateTime的种类,并且随后按原样保存在db中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timeNow = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified);
serviceClient.SaveTime(timeNow);
var dateTime = serviceClient.GetTime();
票数 2
EN

Stack Overflow用户

发布于 2011-06-20 02:10:36

序列化的Json响应中可能包含的是“从纪元开始的毫秒”格式的日期,并且还应该包括时区信息,然后浏览器在显示与本地时区相关的日期时会考虑时区信息。

所有这些都是正确的行为,所以没有bug。看起来你并不希望这种行为发生在你的情况下。

.NET日期有一个"Kind“属性。如果未指定此项,则假定为UTC。序列化程序在序列化时应该考虑到"Kind“属性。尝试在序列化之前检查对象的此属性,并将其更改为DateTimeKind.Local。

http://msdn.microsoft.com/en-us/library/system.datetime.kind.aspx

或者,您可以在浏览器端查看自定义反序列化,在反序列化之前,您将从序列化日期中剥离时区部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6406194

复制
相关文章
django 时区和系统(ubuntu)
django时区默认使用UTC,中国人使用CST东八区。 settings.py改为上海时区 #settings.py TIME_ZONE = 'Asia/Shanghai' # True:使用UTC, False:使用系统时区 USE_TZ = False  系统时区保持一致: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone
py3study
2020/01/16
6570
centos 设置时间和时区 转
list-timezones 列出系统上支持的时区 set-timezone 设定时区 set-time 设置时间 set-btp 设置同步ntp 修改时区tzselect -------------
双面人
2019/04/10
1.7K0
centos 设置时间和时区
                                                                            转
Linux 修改时区和时间
CentOS 和 Ubuntu 的时区文件是 /etc/localtime , 但是在 CentOS7 以后 localtime 以及变成了一个链接文件 :
全栈程序员站长
2022/07/18
3.7K0
JavaScriptSerializer 序列化json 时间格式
 利用JavaScriptSerializer 序列化json 时间格式,得到的DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,显然要进行转换 1.利用字符串直接替换 Model m = new Model { Id = 1, Dt = DateTime.Now }; JavaScriptSerializer js = new JavaScriptSerializer(); string str = js.Serialize(m);
欢醉
2018/01/22
1.5K0
Dapr 和 Azure Functions : Hello world
本篇文章内容来自 https://charliedigital.com/2021/07/01/dapr-and-azure-functions-part-1-hello-world/ ,是按这篇文章的操作记录。
张善友
2022/03/30
3920
Dapr 和 Azure Functions : Hello world
RedHat 8 时间同步和时区修改
当系统完成初始化以后,对时间的设置是非常必要的,可以使用下面的方法对时区进行修改。
HoneyMoose
2021/09/04
3.2K0
RedHat 8 时间同步和时区修改
MySQL时区问题_docker设置时区
使用mysql-connector-java-8.0.9-rc出现以下异常:
全栈程序员站长
2022/11/17
3.5K0
MySQL时区问题_docker设置时区
Azure Stack测试Serverless(Azure Functions)
生产环境里的Azure Stack,就不能仅仅将其看作是Hyper-V虚拟化平台、或者分布式存储、软件定义网络这样的产品。否则就暴殄天物。
盆盆
2019/04/24
5330
Azure Stack测试Serverless(Azure Functions)
Azure部署Azure Stack技巧
Azure Stack混合云的POC正式版已经发布了,盆盆已经写了十余篇有关Azure Stack的文章,您可以点击公众号右下方的菜单去阅读,有图有真相!
盆盆
2019/04/24
1.3K0
Azure部署Azure Stack技巧
Azure Web连接到Azure MySql Db
这个问题折腾了好一会,简单记录一下。 两种方式: 输入“规则名称”、“起始 IP”和“结束 IP”,然后单击“保存”。 规则名称:Allow-All-IPs 起始 IP:0.0.0.0 结束 IP:2
圣杰
2018/08/01
8430
Azure Web连接到Azure MySql Db
DDoS攻击导致Azure和Outlook中断
微软已经证实,最近Azure、Outlook和OneDrive门户网站的中断是由于针对该公司服务的第7层DDoS攻击造成的。
FB客服
2023/08/08
2540
DDoS攻击导致Azure和Outlook中断
MySQL数据库时区错误,设置时区
解决方法1: 打开cmd,输入 mysql -uroot -p123456 进入mysql命令模式 然后输入 set global time_zone=‘+8:00’;
啦啦啦啦
2023/02/11
5.7K0
MySQL数据库时区错误,设置时区
Linux设置和修改时间与时区
时区设置用tzselect 命令来实现。但是通过tzselect命令设置TZ这个环境变量来选择的时区,需要将变量添加到.profile文件中。
匿名用户的日记
2021/12/14
10.9K0
时区问题
时区问题 浏览器时区 ↓ 服务器时区 ↓ 数据库时区 设置浏览器时区 设置服务器时区 设置数据库时区 设置浏览器-服务器时区协议 设置服务器-数据库时区协议
DannyHoo
2020/06/02
1.5K0
Linux设置和修改时间与时区
时区设置用tzselect 命令来实现。但是通过tzselect命令设置TZ这个环境变量来选择的时区,需要将变量添加到.profile文件中。
菲宇
2019/06/11
29.4K0
Azure上一键部署Azure Stack
方便在Azure Global上创建Azure Stack ASDK POC环境。可以访问以下github站点:
盆盆
2019/04/24
5410
Azure上一键部署Azure Stack
CentOS 7 修改时区例如上海时区
Linux 系统(我特指发行版, 没说内核) 下大部分软件的风格就是不会仔细去考虑向后 的兼容性, 比如你上个版本能用这种程序配置, 没准到了下一个版本, 该程序已经不见了. 比如 sysvinit 这种东西.
yaohong
2019/09/11
3.1K0
ubuntu修改时区和时间的方法
ubuntu16 运行命令dpkg-reconfigure tzdata,选择Asia-->Shanghai,确定,
战神伽罗
2019/07/24
12.1K0
ubuntu修改时区和时间的方法
当前时区时间 转换为 目标时区时间
张紫娃
2023/07/21
3270
当前时区时间 转换为 目标时区时间
目标时区时间 转换为 当前时区时间
张紫娃
2023/07/21
2500
目标时区时间 转换为 当前时区时间

相似问题

C# JavaScriptSerializer和DateTime.MinValue穿越时区

24

JavaScriptSerializer和monodevelop

21

JavascriptSerializer和RegisterConverter()

10

JavaScriptSerializer和ValueTypes (结构)

11

JavaScriptSerializer().Serialize(实体框架对象)

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文