获取表示 UTC 偏移量的格式化字符串的最佳方法是什么?
我需要像这样格式化日期:20110202192008-0500。下面的代码可以解决这个问题,但我想知道在 c# 3.5 中是否有更好/更干净的方法来做到这一点。谢谢!!
var date = DateTime.Now;
var strDate = TimeZoneInfo.ConvertTimeToUtc(date).ToString("yyyyMMddHHmmss");
var offsetHours = TimeZoneInfo.Local.GetUtcOffset(date).Hours.ToString("00");
var offsetMinutes = TimeZoneInfo.Local.GetUtcOffset(date).Minutes.ToString("00");
Console.Write(string.Concat(strDate, offsetHours, offsetMinutes));
I need to format a date like so: 20110202192008-0500. The following code does the trick but I was wondering if there is a better/cleaner way to do this in c# 3.5. Thanks!!
var date = DateTime.Now;
var strDate = TimeZoneInfo.ConvertTimeToUtc(date).ToString("yyyyMMddHHmmss");
var offsetHours = TimeZoneInfo.Local.GetUtcOffset(date).Hours.ToString("00");
var offsetMinutes = TimeZoneInfo.Local.GetUtcOffset(date).Minutes.ToString("00");
Console.Write(string.Concat(strDate, offsetHours, offsetMinutes));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
怎么样:
.NET 4
.NET 3.5
Go Steelers(来自拉斯维加斯大道上的一个人)
How about this:
.NET 4
.NET 3.5
Go Steelers (from a guy in the Strip)
如果您有
DateTimeOffset
,自定义说明符zzz
将输出时区偏移量,尽管采用更标准的“+HH:mm”格式。如果您不需要冒号,则可以使用字符串替换来解决问题。If you have a
DateTimeOffset
, the custom specifierzzz
will output the timezone offset, though in the more standard "+HH:mm" format. If you don't want the colon, a string replace will do the trick.以下是一些适用于 .Net 3.5 和 .Net 4.0 的扩展方法,它们将以非常直接的方式完全满足您的要求:
您现在可以在任何您希望的 DateTime 或 DateTimeOffset 上调用这些方法。例如:
或
或
或您能想到的任何其他方式。
Here are some extension methods that will work in both .Net 3.5 and .Net 4.0 that will do exactly what you are asking in a very straight-forward way:
You can now call these on any DateTime or DateTimeOffset you wish. For example:
or
or
or any other number of ways you can think of.
我们发现 DateTimeOffset.ToString("o") 最适合此目的。示例:
如果您需要从 DateTime 进行转换,请使用辅助方法,例如:
We found that DateTimeOffset.ToString("o") is best for that. Example:
If you need to convert from DateTime, use helper method like:
您可以使用
DateTime
之一 标准格式 或创建 自定义格式。You can use one of the
DateTime
Standard Formats or create a Custom Format.尝试使用
...或类似的东西。
Try to use
... or something like this.
我觉得方法有很多,比如:
I think there are a lot of ways, for example: