gpt4 book ai didi

c# - DateTime.ParseExact AM/PM 指标小写

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:36 26 4
gpt4 key购买 nike

考虑以下字符串...

var myString = "11/05/2015 01:04:16 p.m."

我可以在不强制字符串大写的情况下对该字符串执行 DateTime.ParseExact 吗? am/pm 指示器让我很伤心,因为它是小写的所以无法解析。我有一个带有格式字符串常量的静态类。是否有用于指定小写 am/pm 指示符的格式标记?

格式化字符串

namespace myProgram
{
public static class MyFormatStrings
{
public const string MyDateTimeFormat = "dd/MM/yyyy hh:mm:ss t\\.\\M\\.";
}
}

要解析的逻辑

namespace myProgram
{
public static class MyProgram
{
public void MyMethod()
{
var myStringDateValue = "11/05/2015 01:04:16 p.m.";
var result = DateTime.ParseExact(myStringDateValue, MyFormatStrings.MyDateTimeFormat, CultureInfo.InvariantCulture);
}
}
}

最佳答案

您可以在您的文化中更改 DateFormatInfo 的 AMDesignator/PMDesignator。

此信息是只读的,因此您必须创建自己的文化:

我还更改了 MyDateTimeFormat 格式,这样它就可以工作了:

    public class MyCultureInfo : CultureInfo
{
public MyCultureInfo():base(CultureInfo.InvariantCulture.Name)
{
}
public override DateTimeFormatInfo DateTimeFormat
{
get
{
DateTimeFormatInfo myDateTimeFormatInfo = base.DateTimeFormat;
myDateTimeFormatInfo.PMDesignator = "p.m.";
myDateTimeFormatInfo.AMDesignator = "a.m.";
return myDateTimeFormatInfo;
}
set
{
base.DateTimeFormat = value;
}
}
}
public static class MyFormat
{
public const string MyDateTimeFormat = "dd/MM/yyyy hh:mm:ss tt";
}
static int Main(string[] args)
{
var myStringDateValue = "11/05/2015 01:04:16 p.m.";
var result = DateTime.ParseExact(myStringDateValue, MyFormat.MyDateTimeFormat, new MyCultureInfo());
}

关于c# - DateTime.ParseExact AM/PM 指标小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com