0

如何获取从 (2012-10-10T 11:07:58:75 05:30) 到 (10/10/2012) 的日期。帮我。

4

2 回答 2

1

在我看来,您应该解析为 a DateTimeOffset,以表示您实际获得的所有数据:

string text = "2012-10-10T11:07:58+05:30";
DateTimeOffset dto = DateTimeOffset.ParseExact
    (text, "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz",
     CultureInfo.InvariantCulture);

这假设您输入字符串中的最后一个 ":75" 实际上是一个错误。这是一种非常奇怪的格式。如果这不是一个错误,您可能想要:

string text = "2012-10-10T11:07:58:75+05:30";
DateTimeOffset dto = DateTimeOffset.ParseExact
    (text, "yyyy'-'MM'-'dd'T'HH':'mm':'ss':'FFFzzz",
     CultureInfo.InvariantCulture);

这将处理亚毫秒范围内的小数点后 3 位。如果您有更多,您可以将模式扩展到最多 7 个 F 字符。

当您想要获取日期时,您需要确定您真正想要的是本地日期,还是转换为 UTC 后的日期。这将取决于您的业务需求,但请注意效果。(具有相同本地日期的两个值可能不代表相同的 24 小时时间段。)

如果您希望该值再次以不同格式作为字符串,则需要第二步来格式化它,调用ToString. 鉴于您的样本具有相同的日期和月份值,不幸的是,我们无法判断您是否想要MM/dd/yyyydd/MM/yyyy- 但您应该真正考虑这是否应该对文化敏感。如果您可以向我们提供有关您如何使用此值的更多背景信息,我们可以提供更多建议。

于 2012-10-12T06:07:19.393 回答
1

首先: DateTime.ParseExact ,将字符串如“(2012-10-10T 11:07:58:75 05:30”转换为DateTime结构---var d。

和 d.tostring("你的格式")

于 2012-10-10T09:44:57.173 回答