DateTime.Parse American Date Format C#
本文关键字:Format Date American Parse DateTime | 更新日期: 2023-09-27 17:55:53
可能是一个简单的问题-
我正在从许多文件中读取数据。
我的问题是,当我从美国文件中读取日期时,我像这样解析它:
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");
如果要从专门是美国格式的文件解析日期,则只需将美国区域性信息传递到解析函数中,如下所示;
var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));
这样,您可以简单地根据分析所需的不同区域交换区域性字符串。此外,您不再需要研究每种区域性的特定日期时间格式细微差别,因为 .Net 将按照设计为您处理此问题。
时使用DateTime.ParseExact
或DateTime.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