首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DateTimeOffset转换为Int64,然后再转换为DateTimeOffset

将DateTimeOffset转换为Int64,然后再转换为DateTimeOffset
EN

Stack Overflow用户
提问于 2018-09-16 01:21:20
回答 1查看 2.8K关注 0票数 2

我需要将DateTimeOffset添加到我维护的二进制序列化库中。使用DateTime,我只是简单地将滴答保存为一个Int64,但是DateTimeOffset没有将ticks作为构造函数。如何才能适当地重新建造呢?

示例

代码语言:javascript
复制
DateTime date = new DateTime.Now;
long ticks = date.Ticks;
DateTime date2 = new DateTime(ticks);

DateTimeOffset dateOffset = new DateTimeOffset.Now;
long ticks2 = dateOffset.Ticks;
DateTimeOffset dateOffset2 = new DateTimeOffset(?)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-16 05:32:16

DateTimeOffset没有将滴答作为构造函数。

它确实有一个构造函数,取滴答加上偏移量

代码语言:javascript
复制
DateTimeOffset(Int64, TimeSpan)

…TimeSpan可以被构造为从滴答值

代码语言:javascript
复制
TimeSpan(Int64) 

…因此,您可以将DateTimeOffset序列化为2 Int64 values…。

代码语言:javascript
复制
DateTimeOffset dto = DateTimeOffset.Now;

var ticks = dto.Ticks;
var offset = dto.Offset.Ticks;

DateTimeOffset newDto = new DateTimeOffset(ticks, new TimeSpan(offset));

Debug.Assert(dto.EqualsExact(newDto), "DateTmeOffset Mismatch");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52350188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档