代码之家  ›  专栏  ›  技术社区  ›  Alexxus

将类似“03/2020”的字符串解析为DateTime变量

  •  0
  • Alexxus  · 技术社区  · 6 年前

    我必须解析一个字符串,它总是看起来像 03/2020 (所以格式是 MM/yyyy ),设置为日期时间变量。

    我怎样才能做到最好?(不将字符串拆分为子字符串)

    我已经找到了 DateTime.ParseExact 函数,但我被第三个参数(特定于区域性的格式信息)搞糊涂了。

    日期时间.ParseExact 要走的路还是有更好的功能/方法来实现目标?

    var inputString = "03/2020";
    var inputStringFormat = @"MM/yyyy";
    
    // var inputStringAsDateTime = ???
    

    编辑1

    作为补充信息,我不得不说,字符串( inputString )从条形码中读取。所以里面的分隔符总是 / .

    蒂姆·施梅尔特在他的回答中解释道,如何屏蔽这种分离器。 看来我得换个 inputStringFormat 变量为:

    var inputStringFormat = @"MM'/'yyyy";
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Patrick Hofman Wahid Bitar    6 年前

    如果这个月的第一天对你有好处,你可以用 DateTime.ParseExact :

    var d = DateTime.ParseExact(inputString, inputStringFormat, CultureInfo.InvariantCulture);
    
        2
  •  1
  •   ksdev    6 年前

    通常,我使用Convert类的ToDateTime方法。我有 测试 它,它在工作。

    string inputString = "03/2020";
    DateTime datetime = Convert.ToDateTime(inputString));
    

    它将提供类似于3/1/2020 12:00:00 AM的输出,这意味着它将根据系统的日期格式提供输出。

        3
  •  0
  •   Laky    6 年前

    使用这样简单的日期格式

    var inputArr = inputString.split(@"/");
    var inputStringAsDateTime = new DateTime(inputArr[0], inputArr[1], 1);
    

    但是对于文化,您可以使用常量

    CultureInfo.InvariantCulture