【问题标题】:Parsing a date string to get the year解析日期字符串以获取年份
【发布时间】:2012-03-04 00:36:24
【问题描述】:

我有一个字符串变量,它存储像“05/11/2010”这样的日期。

如何解析字符串以仅获取年份?

所以我会有另一个年份变量,例如year = 2010

【问题讨论】:

    标签: c# date


    【解决方案1】:

    您可以使用DateTime.Parse Method 将字符串解析为具有Year PropertyDateTime 值:

    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
    

    【讨论】:

      【解决方案2】:

      这应该适合你。

      string myDate = "05/11/2010"; 
      DateTime date = Convert.ToDateTime(myDate);
      int year = date.Year;
      

      【讨论】:

      • 抱歉,DateTime 类的这样的构造函数不存在。
      • @Serge 你似乎是对的。这就是我试图这么晚思考并且在发布前没有确认的结果。 :P
      • 我会避免在不指定文化的情况下进行解析。
      【解决方案3】:

      如果日期字符串格式是固定的(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 方法尝试解析日期时间字符串的几种表示形式。

      【讨论】:

        【解决方案4】:

        您还可以使用 Regex 来获取字符串“05/11/2010”中的年份

        public string getYear(string str)
        {
            return (string)Regex.Match(str, @"\d{4}").Value;
        }
        
        var result = getYear("05/11/2010");
        
        2010
        

        【讨论】:

        • 这也匹配我电话号码的前 4 位数字,并且由于某种原因将年份作为字符串返回。
        • 当然可以,但如果问题仅采用日期格式,它会起作用。
        【解决方案5】:

        我使用的 dtb 变体:

        string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-19
          • 1970-01-01
          • 2012-07-14
          • 1970-01-01
          • 2015-09-12
          • 1970-01-01
          • 2012-11-18
          • 1970-01-01
          相关资源
          最近更新 更多