簡體   English   中英

DateTime.Parse 美國日期格式 C#

[英]DateTime.Parse American Date Format C#

可能是一個簡單的問題 -

我正在從許多文件中讀取數據。

我的問題是,當我從美國文件中讀取日期時,我會這樣解析它:

DateSold = DateTime.Parse(t.Date)

這會將字符串 t.Date 解析為日期格式,但是它將美國日期格式化為歐洲日期,例如

如果文件中的日期為 03/01/2011,則讀取為 2011 年 1 月 3 日,而它應該是 2011 年 3 月 1 日。

有沒有辦法讓它格式化為歐洲日期?

var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);

DateTime 本身沒有格式,只有當您將其轉換為字符串或從字符串轉換時,格式才是相關的。

要以美國格式查看日期,請將格式傳遞給 ToString 方法

string americanFormat = dt.ToString("MM/dd/yyyy");

如果您要從一個特別是美國格式文件的文件中解析日期,那么只需將美國文化信息傳遞給 parse 函數,如下所示;

var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));

這樣,您可以簡單地換出解析所需的每個不同區域的文化字符串。 此外,您不再需要研究每種文化的特定日期時間格式的細微差別,因為 .Net 會按照設計為您處理這些問題。

解析時使用DateTime.ParseExactDateTime.TryParseExact ,使用ToString格式化時也要指定格式字符串。

請注意,解析后沒有“美國約會”之類的東西。 DateTime沒有格式的概念。

聽起來您實際上對Parse部分並不像格式化部分那樣感興趣,例如

string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

...但我建議您明確控制解析格式化。

如果您有不同的文件格式,則在讀取每個文件時需要提供不同的格式字符串。 然后如何格式化數據是一個單獨的決定。

如果您提前知道格式,則可以使用DateTime.ParseExact ,使用美國格式作為格式字符串。

string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012    
string formatteddate=DateTime.Now.ToString("D") // output: Monday, November 08, 2012    
string formatteddate=DateTime.Now.ToString("f") // output: Monday, November 08, 2012 3:39 PM    
string formatteddate=DateTime.Now.ToString("g") // output: Monday, November 08, 2012 3:39:46 PM    
string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012 3:39 PM

此處提供了更多 asp.net 中的日期時間格式。

http://dateformat.blogspot.in/2012/09/date-time-format-in-c-aspnet.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM