gpt4 book ai didi

c# - 强制本地 DateTime 序列化

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:41 25 4
gpt4 key购买 nike

我正在序列化一个 DateTime 值,它工作正常,创建了一个 ISODateTime 值。但它始终使用 UTC 进行序列化。

YYY-MM-DDThh:mm:ss+hh:mm:ss

当我创建 DateTime 实例时,我强制使用 LocalTime:

 DateTime localDateTime = new DateTime(DateTime.Now.Ticks,DateTimeKind.Local);

但是,出于某种原因,它总是序列化为 UTC(我总是在最后得到“+01:00”)。它应该自动读取 get DataTimeKind 并正确序列化,但没有... :(

如何配置序列化器或属性以强制 DateTime 在本地时间序列化?

编辑:这是一个测试类

[Serializable]
public class DateTimeTest
{
[System.Xml.Serialization.XmlElement("DateTime")]
public DateTime dateTime;
}

这是序列化代码

    public static string XMLSerializeToString<ObjectType>(ObjectType objetToSerialize, string defaultNamespace)
{
TextWriter stringWriter = new StringWriter();
XmlSerializer serializer =
defaultNamespace==null ? new XmlSerializer(typeof(ObjectType)) : new XmlSerializer(typeof(ObjectType),defaultNamespace);
serializer.Serialize(xmlWriter, objetToSerialize);
return stringWriter.ToString();
}

这是调用序列化器

    DateTime localDateTime = new DateTime(DateTime.Now.Ticks, DateTimeKind.Local);
DateTimeTest dateTimeTest = new DateTimeTest();
dateTimeTest.dateTime = localDateTime;
string ser = XMLProcessor.XMLSerializeToString<DateTimeTest>(dateTimeTest, null);

这是结果字符串

<?xml version="1.0" encoding="utf-16"?>
<DateTimeTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DateTime>2013-10-25T17:01:35.7228+01:00</DateTime>
</DateTimeTest>

我不想得到 17:01:35+01:00。我想得到 17:01:35。我怎样才能得到它?

谢谢:)

最佳答案

正如我在评论中所说:

You haven't said what serializer you're using, but you might try setting its Kind to DateTimeKind.Unspecified if you don't want to see the timezone offset.

设置日期时间的代码:

DateTime localDateTime = new DateTime(DateTime.Now.Ticks, DateTimeKind.Local);

不必要地笨拙,完全等同于:

DateTime localDateTime = DateTime.Now;

如果你想要一个没有偏移量的序列化日期时间,它需要有 DateTimeKind.Unspecified:

DateTime localDateTime = DateTime.Now.SpecifyKind(DateTimeKind.Unspecified);

关于c# - 强制本地 DateTime 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com