使用文化信息将 unix 时间转换为特定的日期时间格式
Convert unix time to specific datetime format with culture info
我尝试将字符串转换为特定的日期时间格式。
我有字符串:
1431075600
我尝试通过以下方式转换它:
private static IFormatProvider culture = new System.Globalization.CultureInfo("en-GB");
model.DeliveryDate = DateTime.Parse(data.DeliveryDate, culture, System.Globalization.DateTimeStyles.AssumeLocal);
我收到错误消息:
String was not recognized as a valid DateTime.
最后我想要日期时间格式像
Friday, 8 May 2015 hour: 09:00
您的字符串看起来像 Unix Time,从 1 January 1970 00:00 UTC.
开始经过了秒数。这就是为什么您不能直接 将其解析为DateTime
。您需要先创建一个 unix 时间,然后将此值添加为秒。
这就是为什么您需要将字符串作为第二个添加到此值,例如;
var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
dt = dt.AddSeconds(1431075600).ToLocalTime();
然后您可以使用 基于英语的 文化行 InvariantCulture
;
格式化您的字符串
Console.WriteLine(dt.ToString("dddd, d MMM yyyy 'h'our: HH:mm",
CultureInfo.InvariantCulture));
结果将是;
Friday, 8 May 2015 hour: 09:00
这里是demonstration
.
我尝试将字符串转换为特定的日期时间格式。
我有字符串:
1431075600
我尝试通过以下方式转换它:
private static IFormatProvider culture = new System.Globalization.CultureInfo("en-GB");
model.DeliveryDate = DateTime.Parse(data.DeliveryDate, culture, System.Globalization.DateTimeStyles.AssumeLocal);
我收到错误消息:
String was not recognized as a valid DateTime.
最后我想要日期时间格式像
Friday, 8 May 2015 hour: 09:00
您的字符串看起来像 Unix Time,从 1 January 1970 00:00 UTC.
开始经过了秒数。这就是为什么您不能直接 将其解析为DateTime
。您需要先创建一个 unix 时间,然后将此值添加为秒。
这就是为什么您需要将字符串作为第二个添加到此值,例如;
var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
dt = dt.AddSeconds(1431075600).ToLocalTime();
然后您可以使用 基于英语的 文化行 InvariantCulture
;
Console.WriteLine(dt.ToString("dddd, d MMM yyyy 'h'our: HH:mm",
CultureInfo.InvariantCulture));
结果将是;
Friday, 8 May 2015 hour: 09:00
这里是demonstration
.