是否有ISO 8601时间和偏移的“短”格式说明符,没有小数秒?

时间:2014-02-14 18:52:23

标签: c# .net datetime string-formatting iso8601

在没有[可选]小数秒的情况下,ISO-8601表示是否有“short [er]”格式说明符?

即,给定

var n = DateTimeOffset.Now;

// short "s" format  -  2014-02-14T10:41:49
n.ToString("s")
// short "o" format  -  2014-02-14T10:41:49.7200222-08:00
n.ToString("o")

// desired output
// custom format    -  2014-02-14T10:41:49-08:30
n.ToString("yyyy-MM-ddTHH:mm:sszzz")

最后一种情况是否有“short [er]”格式说明符?


上下文澄清:我主要使用string.Format格式,其中长格式可以快速混淆格式字符串。

1 个答案:

答案 0 :(得分:2)

对不起,第一次误解了这个问题。恕我直言,扩展方法将是最好的:

class Program {    
    static void Main() {
        Console.WriteLine(DateTimeOffset.Now.ToCustomString());
    }
}

static class DateHelper {
    public static string ToCustomString(this DateTimeOffset time) {
        return time.ToString("yyyy-MM-ddTHH:mm:sszzz");
    }
}

如果您需要在具有多个替换字段的较长字符串中使用它,请查看custom format providers