c# - 如何以当前区域性格式的默认值从 Noda Time OffsetDateTime 生成 DateTimeOffset 字符串?

标签 c# datetime datetime-format nodatime

假设我有 Noda Time LocalDateTime myLocalDateTime 和 Offset myOffset 变量。为了生成 ISO8601 格式的 DateTimeOffset 字符串,我使用

var offsetDateTimePattern = OffsetDateTimePattern.Create(OffsetDateTimePattern.ExtendedIsoPattern.PatternText, CultureInfo.InvariantCulture, defaultOffsetDateTime);
var resDateTimeOffsetISO8601 = offsetDateTimePattern.Format(new OffsetDateTime(myLocalDateTime, myOffset));

现在,我还想在当前区域性格式的默认值中生成 DateTimeOffset 字符串。

对于美国来说,就像“4/10/2014 3:03:11 PM -07:00”。我正在考虑将“G”模式与 CurrentCulture 的组合用于日期时间部分,然后使用“m”格式作为偏移量。我该怎么做呢?比如使用“G m”作为模式文本?

var offsetDateTimePatternLocal = OffsetDateTimePattern.Create("G m", CultureInfo.CurrentCulture, defaultOffsetDateTime);
var resDateTimeOffsetCurrentCulture = offsetDateTimePattern.Format(new OffsetDateTime(myLocalDateTime, myOffset));

(此处提出了相关解析问题:http://goo.gl/OVeQJT)

最佳答案

我认为,如果您想保留 "G" 格式化程序的文化感知行为,您可以做的最好的事情是这样的:

var ldtPattern = LocalDateTimePattern.CreateWithCurrentCulture("G");
var offsetPattern = OffsetPattern.CreateWithCurrentCulture("m");
var result = ldtPattern.Format(localDateTime) + " " + offsetPattern.Format(resOffset);

问题是 OffsetDateTimePattern 没有任何文化感知的标准模式。 See the user guide for details 。我认为这可能应该在未来的版本中得到纠正。

如果您想使用固定模式进行格式化,也可以。但是您需要提前了解文化的模式。

var pattern = OffsetDateTimePattern.Create("M/dd/yyyy h:mm:ss tt o<m>", CultureInfo.InvariantCulture, defaultOffsetDateTime);
var result = pattern.Format(new OffsetDateTime(localDateTime, resOffset));

关于c# - 如何以当前区域性格式的默认值从 Noda Time OffsetDateTime 生成 DateTimeOffset 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019131/

相关文章:

c# - 分部 View 转 Html 字符串

Java时区: how to get UTC time values based on Console settings?

javascript - Moment Timezone JS,返回 Javascript 日期

python - 如何使用 Python 确定从星期日开始的一年中的第几周?

java - DateTimeFormatter 不使用阿拉伯语或孟加拉语的本地数字

c# - 如何左连接到另一个左连接

c# - 为什么我在使用静态字段中的表达式时会收到 InvalidCastException?

c# - 使用 LINQ 按日期对序列进行无间隙分组

javascript - 日期对象的行为不符合预期

flutter - 如何在 Dart 中获取星期几的缩写名称