use*_*886 4 c# formatting timezone datetime
我有一个日期/时间字符串,如下所示:
Wed Sep 21 2011 12:35 PM Pacific
Run Code Online (Sandbox Code Playgroud)
如何将DateTime格式化为这样?
谢谢!
时区之前的位很容易,使用自定义日期和时间格式字符串:
string text = date.ToString("ddd MMM dd yyyy hh:mm t");
Run Code Online (Sandbox Code Playgroud)
但是,我相信.NET日期/时间格式不会给你"太平洋"部分.它能给你的最好的是与UTC 的时区偏移.如果你能以其他方式获得时区名称,这很好.
许多TimeZoneInfo标识符包括太平洋一词,但没有一个只是"太平洋".
string.Format("{0} {1}", DateTime.Now.ToString("ddd MMM dd yyyy HH:mm tt"), TimeZone.CurrentTimeZone.StandardName);
//Result: Wed Sep 07 2011 14:29 PM Pacific Standard Time
Run Code Online (Sandbox Code Playgroud)
如果您不想显示,请修剪标准时间.
编辑: 如果您需要在整个地方执行此操作,您还可以扩展DateTime以包含一个方法来为您执行此操作.
void Main()
{
Console.WriteLine(DateTime.Now.MyCustomToString());
}
// Define other methods and classes here
public static class DateTimeExtensions
{
public static string MyCustomToString(this DateTime dt)
{
return string.Format("{0} {1}", DateTime.Now.ToString("ddd MMM dd yyyy HH:mm tt"), TimeZone.CurrentTimeZone.StandardName).Replace(" Standard Time", string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在LinqPad中运行此示例,直接复制并粘贴并在程序模式下运行它.
更多编辑
在下面的评论之后,这是更新版本.
void Main()
{
Console.WriteLine(DateTime.Now.MyCustomToString());
}
// Define other methods and classes here
public static class DateTimeExtensions
{
public static string MyCustomToString(this DateTime dt)
{
return string.Format("{0:ddd MMM dd yyyy hh:mm tt} {1}", DateTime.Now, TimeZone.CurrentTimeZone.StandardName).Replace(" Standard Time", string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |