DateTime.UtcNow.ToString() 和DateTime.Now.ToString()输出的字符为啥不一样呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DateTime.UtcNow.ToString() 和DateTime.Now.ToString()输出的字符为啥不一样呢?相关的知识,希望对你有一定的参考价值。
DateTime.UtcNow.ToString() 和DateTime.Now.ToString()输出的字符为什么不一样呢?
DateTime.UtcNow.ToString()输出的是0时区的事件,DateTime.Now.ToString()输出的是当前时区的时间,我们中国使用的是东八区的时间,所以差8个小时。 参考技术A utcnow获取的是计算机上的当前日期和时间,表示为协调世界时 (UTC)。从 .NET Framework 2.0 版开始,返回值是 DateTime,它的 Kind 属性返回 DateTimeKind..::.Utc。
这里有一段示例代码 希望可以帮到你
// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(),
// and ToUniversalTime() methods.
using System;
class Sample
public static void Main()
// Get the date and time for the current moment, adjusted
// to the local time zone.
DateTime saveNow = DateTime.Now;
// Get the date and time for the current moment expressed
// as coordinated universal time (UTC).
DateTime saveUtcNow = DateTime.UtcNow;
DateTime myDt;
// Display the value and Kind property of the current moment
// expressed as UTC and local time.
DisplayNow("UtcNow: ..........", saveUtcNow);
DisplayNow("Now: .............", saveNow);
Console.WriteLine();
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);
Display("Utc: .............", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);
Display("Local: ...........", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
Display("Unspecified: .....", myDt);
// Display the value and Kind property of a DateTime structure, the
// DateTime structure converted to local time, and the DateTime
// structure converted to universal time.
public static string datePatt = @"M/d/yyyy hh:mm:ss tt";
public static void Display(string title, DateTime inputDt)
DateTime dispDt = inputDt;
string dtString;
// Display the original DateTime.
dtString = dispDt.ToString(datePatt);
Console.WriteLine("0 1, Kind = 2",
title, dtString, dispDt.Kind);
// Convert inputDt to local time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was universal time.
dispDt = inputDt.ToLocalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToLocalTime: 0, Kind = 1",
dtString, dispDt.Kind);
// Convert inputDt to universal time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was local time.
dispDt = inputDt.ToUniversalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToUniversalTime: 0, Kind = 1",
dtString, dispDt.Kind);
Console.WriteLine();
// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
public static void DisplayNow(string title, DateTime inputDt)
string dtString = inputDt.ToString(datePatt);
Console.WriteLine("0 1, Kind = 2",
title, dtString, inputDt.Kind);
/*
This code example produces the following results:
UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
C#:将 Datetime.Now 解析为特定的 fromat [重复]
【中文标题】C#:将 Datetime.Now 解析为特定的 fromat [重复]【英文标题】:C#: Parse Datetime.Now to specific fromat [duplicate] 【发布时间】:2017-01-09 16:08:02 【问题描述】:我想将Datetime.Now
解析成格式化字符串,如
“2016-09-01T02:00:12.7011585Z”
【问题讨论】:
DateTime.UtcNow.ToString("o")
可能是您想要的。这么少的细节很难说
【参考方案1】:
你不能解析DateTime.Now
。它已经返回DateTime
,而不是string
。
您可以使用yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'
格式和InvariantCulture
等适当的文化生成它的字符串字符串表示形式;
DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'", CultureInfo.InvariantCulture)
【讨论】:
以上是关于DateTime.UtcNow.ToString() 和DateTime.Now.ToString()输出的字符为啥不一样呢?的主要内容,如果未能解决你的问题,请参考以下文章