我在C#是絕對新的(我從爪哇來到),我有一個非常愚蠢的問題如何初始化DateTime字段?
我要初始化一些日期時間領域爲對象,但我有一些問題的話。
特別是我想inizialize這樣這些領域:
mySmallVuln.Published = '1998,04,30';
mySmallVuln.LastUpdated = '2007,11,05';
但Visual Studio中籤我作爲錯誤
字符太多字符文字
我錯過了什麼?如何解決它?
我在C#是絕對新的(我從爪哇來到),我有一個非常愚蠢的問題如何初始化DateTime字段?
我要初始化一些日期時間領域爲對象,但我有一些問題的話。
特別是我想inizialize這樣這些領域:
mySmallVuln.Published = '1998,04,30';
mySmallVuln.LastUpdated = '2007,11,05';
但Visual Studio中籤我作爲錯誤
字符太多字符文字
我錯過了什麼?如何解決它?
mySmallVuln.Published = new DateTime(1998,04,30);
或許這樣
var date = DateTime.MinValue;
if (DateTime.TryParse("1998/04/30", out date))
{
//Sucess...
mySmallVuln.Published = date;
}
使用本
//年,月,日
mySmallVuln.Published=new DateTime(2011,11,4);
要初始化DateTime
值可以使用DateTime
構造函數:
mySmallVuln.Published = new DateTime(1998,04,30);
兩者都是相同....
mySmallVuln.Published = new DateTime(1998,04,30,0,0,0);
mySmallVuln.LastUpdated = new DateTime(2007,11,05,0,0,0);
mySmallVuln.Published = new DateTime(1998,04,30);
mySmallVuln.LastUpdated = new DateTime(2007,11,05);
,那麼就可以在參數分別分配時,分和秒的第一方法
最後三個參數。
你可以解析一個字符串,就像你的。或者你可以用數字來創建一個DateTime對象。
DateTime date1 = new DateTime(1998, 04, 30);
DateTime date2 = DateTime.ParseExact("1998,04,30", "yyyy,MM,dd", CultureInfo.InvariantCulture);
您正在使用字符文字''
,它只能包含一個字符。如果您想使用字符串文字,請改爲使用""
。
C#不支持DateTime
-literals而不是VB.NET(#4/30/1998#
)。
除此之外,字符串不是DateTime
。如果你有一個字符串,你需要把它解析到DateTime
第一:
string published = "1998,04,30";
DateTime dtPublished = DateTime.ParseExact(published, "yyyy,MM,dd", CultureInfo.InvariantCulture);
mySmallVuln.Published = dtPublished;
,或者你可以通過構造函數創建一個DateTime
:
DateTime dtPublished = new DateTime(1998, 04, 30);
,或者因爲你的字符串包含年,月和日串,使用String.Split
和int.Parse
:
string[] tokens = published.Split(',');
if (tokens.Length == 3 && tokens.All(t => t.All(Char.IsDigit)))
{
int year = int.Parse(tokens[0]);
int month = int.Parse(tokens[1]);
int day = int.Parse(tokens[2]);
dtPublished = new DateTime(year, month, day);
}
不幸的是,C#不支持日期文字。您應該更改您的代碼並使用new DateTime(..)
實例化DateTime對象,如他的答案中所示的thomas。
只是爲了擴展這個話題:VB.NET支持使用#字符(具有諷刺意味的)日期文字。這是他們可以表示,從MSDN documentation:
Dim d As Date
d = # 8/23/1970 3:45:39AM #
d = # 8/23/1970 # ' Date value: 8/23/1970 12:00:00AM.
d = # 3:45:39AM # ' Date value: 1/1/1 3:45:39AM.
d = # 3:45:39 # ' Date value: 1/1/1 3:45:39AM.
d = # 13:45:39 # ' Date value: 1/1/1 1:45:39PM.
d = # 1AM # ' Date value: 1/1/1 1:00:00AM.
d = # 13:45:39PM # ' This date value is not valid.
DateTime d = default(DateTime);
默認關鍵字適用於所有數據類型呢!