1
55
也许“k”格式说明符会有一些用处。这是唯一一个似乎提到使用大写字母“Z”的词。 “Z”是日期时间的一种独特情况。字面“z”实际上是UTC时间的ISO 8601日期时间标准的一部分。当“z”(zulu)附加在时间的末尾时,它表示时间是UTC,所以实际上Z是时间的一部分。这可能会给.NET中的日期格式库带来一些问题,因为它实际上是一个文本,而不是格式说明符。 |
2
6
使用date time时,可以将日期和时间存储在变量中。 日期可以是当地时间或UTC时间,这取决于您。 例如,我在意大利(+2 UTC)
那么,当我打印DT1和DT2(包括时区)时会发生什么?
DT1和DT2只包含日期和时间信息。 DT1和DT2不包含时区偏移量。 如果“+2”不包含在dt1和dt2变量中,它来自哪里? 它来自您的机器时钟设置。 编译器告诉您,当您使用“zzz”格式时,您正在编写一个组合“日期+时间”(存储在DT1和DT2中)的字符串。+ “时区偏移量”(DT1和DT2中不包含,因为它们是日期类型) 它将使用执行代码的服务器机器的偏移量。 编译器告诉您“警告:代码的输出取决于机器时钟偏移” 如果我在位于伦敦(+1 UTC)的服务器上运行此代码,结果将完全不同:而不是“ + 2 “它会写” + 1 “
正确的解决方案是使用datetimeoffset数据类型代替datetime。 它从2008版开始在SQL Server中可用,从3.5版开始在.NET框架中可用。 |
3
4
通过字符串的往返日期一直是一个难题……但要指出“o”说明符是用于往返的文档,该说明符捕获了UTC状态。解析时,如果原始结果是UTC,则结果通常为kind==UTC。我发现最好的做法是在序列化之前将日期规范化为UTC或本地日期,然后指示解析器您选择了哪种规范化。
|
4
2
This page 在msdn上列出标准的日期时间格式字符串,使用“z”取消对字符串的编码。 更新:您需要确保日期字符串的其余部分也遵循正确的模式(您没有提供发送内容的示例,因此很难说您是否提供了)。要使UTC格式正常工作,应该如下所示:
|
5
2
意志产出:
我在丹麦,我和格林尼治标准时间的时差是+2小时,女巫说的对。 如果你需要 客户端偏移 ,我建议您检查 little trick 我做到了。该页面位于英国的一个服务器上,这里的格林尼治标准时间是+00:00,如您所见,您将获得当地的格林尼治标准时间偏移量。 关于你的评论,我做到了:
我得到这个:
我也不例外,只是…它与大写字母Z无关:( 对不起,我是不是错过了什么? 仔细阅读上的msdn Custom Date and Time Format Strings 不支持大写“Z”。 |
6
0
我在处理
所以我最终得到了:
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |