109*_*793 22 c# asp.net datetime
可能是一个简单的问题 -
我正在读取许多文件中的数据.
我的问题是,当我从美国文件中读取日期时,我会像这样解析它:
DateSold = DateTime.Parse(t.Date)
Run Code Online (Sandbox Code Playgroud)
这将字符串t.Date解析为日期格式,但是它将美国日期格式化为欧洲日期,例如
如果日期在2011年1月3日的文件中,则为2011年1月3日,即应该是2011年3月1日.
有没有办法这样做,以便格式化为欧洲日期?
Pat*_*ald 33
var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
DateTime本身没有格式化,只有当您将其转换为格式相关的字符串或从格式相关的字符串转换时.
要使用美国格式查看日期,请将格式传递给ToString方法
string americanFormat = dt.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)
Bri*_*ott 18
如果要从特定于美国格式的文件的文件中解析日期,则只需将美国文化信息传递到解析函数中,如下所示;
var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));
Run Code Online (Sandbox Code Playgroud)
这样,您可以简单地换出解析所需的每个不同区域的文化字符串.此外,您不再需要研究每种文化的具体日期时间格式细微差别,因为.Net将按照您的设计为您处理此问题.
使用DateTime.ParseExact或DateTime.TryParseExact解析时,也可以在格式化时指定格式字符串ToString.
请注意,在解析之后,没有"美国日期"之类的东西.该DateTime值没有格式化的概念.
听起来你实际上并没有Parse对格式部分感兴趣,例如
string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
...但我建议你明确地控制解析和格式化.
如果您有不同的文件格式,则在读取每个文件时需要提供不同的格式字符串.然后如何格式化数据是一个单独的决定.
| 归档时间: |
|
| 查看次数: |
49959 次 |
| 最近记录: |