字符串"2013/5/18 0:00:00”不是有效的 AllXsd 值


造成此錯誤常常是將日期加載到了DataSet,而不能轉換。

可以看到上述日期字符串當中18后面存在一個空格,就是這個空格導致的不是一個有效的AllXsd值。想讓此字符串日期轉換為有效的格式,可以用T來替換掉18后面的空格。

在程序中可以這樣處理。

首先可以看到已經獲取到了一個字符串格式的日期。

然后可以通過DateTime.Parse將字符串轉換為日期格式類型。

最后將日期格式通過如上轉換即可得到想要的字符串日期了。你也可以直接用date.ToString("s"),同樣可以得到想要的結果。

接下來就可以順利的將其轉換到DataSet數據集中了。

下面來了解一下DateTime.ToString()

 DateTime.ToString()函數有四個重載。一般用得多的就是不帶參數的那個了。殊不知,DateTime.ToString(string format)功能更強大,能輸出不同格式的日期。以下把一些情況羅列出來,供大家參考。有些在MSDN上有的就沒有列出來了。
1.         y代表年份,注意是小寫的y,大寫的Y並不代表年份。

2.         M表示月份。

3.         d表示日期,注意D並不代表什么。

4.         h或H表示小時,h用的是12小時制,H用的是24小時制。

5.         m表示分鍾。

6.         s表示秒。注意S並不代表什么。

格式

輸出

示例

y

7

string yy = DateTime.Now.ToString("y-MM")

yy="7-05"

yy

07

string yy = DateTime.Now.ToString("yy-MM")

yy="07-05"

yyy或更多的y

1984

string yy = DateTime.Now.ToString("yyyy");

yy="2007"

M

5.

string mon = DateTime.Parse("1984-05-09")ToString("yyyy-M")

mon = "1984-5"

MM

05.

string mon = DateTime.Parse("1984-05-09")ToString("M")

mon = "05"

MMM

如果是中文版的操作系統,則會輸出:五月.

如果是英文操作系統,則輸入月份前三個字母的簡寫:May

string mon = DateTime.Parse("2006-07-01").ToString("MMM")

英文版操作系統:Jul

中文版操作系統:七月

MMMM或更多的M

如果是中文版的操作系統,則會輸出:五月.

如果是英文操作系統,則輸入月份的全寫

string mon = DateTime.Parse("2006-07-01").ToString("MMM")

英文版操作系統:July

中文版操作系統:七月

日期或星期

d

9

string dd= DateTime.Parse("1984-05-09")ToString("d")

dd= "9"

 

dd

09

string dd= DateTime.Parse("1984-05-09")ToString("dd")

dd= "09"

ddd

如果是中文版的操作系統,則會輸出星期,如星期三。.

如果是英文操作系統,則輸出星期的簡寫:如

Wed

string dd = DateTime.Parse("2006-07-01").ToString("ddd")

英文版操作系統:Wed

中文版操作系統:星期三

dddd或更多的d

如果是中文版的操作系統,則會輸出星期,如星期三。.

如果是英文操作系統,則輸出星期:如

Wednesday

string dd = DateTime.Parse("2006-07-01").ToString("dddd")

英文版操作系統:Wednesday

中文版操作系統:星期三

小時

h

小時范圍:1-12

string hh = DateTime.Now.ToString(“h”);

hh = 8

hh或更多的h

小時范圍:1-12

string hh = DateTime.Now.ToString(“hh”);

hh = 08

H

小時范圍:0-23

string hh = DateTime.Now.ToString(“yyyy-H”);

hh = 2006-8

HH或更多的H

小時范圍:0-23

string hh = DateTime.Now.ToString(“yyyy-HH”);

hh = 2006-08

string hh = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”);

hh = 2006-18

分鍾

m

6

string mm =  DateTime.Now.ToString("yyyy-MM-dd-m");

mm = “2006-07-01-6”;

mm或更多的m

06

string mm =  DateTime.Now.ToString("yyyy-MM-dd-mm");

mm = “2006-07-01-06”;

s

6

string mm =  DateTime.Now.ToString("yyyy-MM-dd-s");

mm = “2006-07-01-6”;

ss或更多的s

06

string mm =  DateTime.Now.ToString("yyyy-MM-dd-ss");

mm = “2006-07-01-06”;

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM