【发布时间】:2012-03-04 00:36:24
【问题描述】:
我有一个字符串变量,它存储像“05/11/2010”这样的日期。
如何解析字符串以仅获取年份?
所以我会有另一个年份变量,例如year = 2010。
【问题讨论】:
我有一个字符串变量,它存储像“05/11/2010”这样的日期。
如何解析字符串以仅获取年份?
所以我会有另一个年份变量,例如year = 2010。
【问题讨论】:
您可以使用DateTime.Parse Method 将字符串解析为具有Year Property 的DateTime 值:
var result = DateTime.Parse("05/11/2010").Year;
// result == 2010
根据操作系统的文化设置,您可能需要提供CultureInfo:
var result = DateTime.Parse("05/11/2010", new CultureInfo("en-US")).Year;
// result == 2010
【讨论】:
这应该适合你。
string myDate = "05/11/2010";
DateTime date = Convert.ToDateTime(myDate);
int year = date.Year;
【讨论】:
DateTime 类的这样的构造函数不存在。
如果日期字符串格式是固定的(dd/MM/yyyy),我建议你使用DateTime.ParseExact Method。
代码:
const string dateString = "12/02/2012";
CultureInfo provider = CultureInfo.InvariantCulture;
// Use the invariant culture for the provider parameter,
// because of custom format pattern.
DateTime dateTime = DateTime.ParseExact(dateString, "dd/MM/yyyy", provider);
Console.WriteLine(dateTime);
另外我认为它可能比DateTime.Parse Method 快一点,因为 Parse 方法尝试解析日期时间字符串的几种表示形式。
【讨论】:
您还可以使用 Regex 来获取字符串“05/11/2010”中的年份
public string getYear(string str)
{
return (string)Regex.Match(str, @"\d{4}").Value;
}
var result = getYear("05/11/2010");
2010
【讨论】:
我使用的 dtb 变体:
string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
【讨论】: