日期时间.parseexact

waxmsbnn  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(197)

他在踢我的屁股。。。我有一个文本文件,我正在分裂,希望插入到sql。我需要朝正确的方向快速推!
下面是我正在捕获的文件的摘录,我将分为“-”

2020-06-25-13.23.04.220000 - Running MRP for Site

我能很好地把这两部分分开。控制台输出
但似乎无法将日期转换为对我的sql insert有效的格式。我想,但可能是完全错误的,我需要重新格式化这个日期字符串使用一些替换命令。如果我使用下面的非工作代码尝试使用datetime.parseexact,我会收到一个system.formatexception:string was 在我的datetime.parseexact行上未识别为有效。

foreach (string line in lines)
        {
            if (line.Contains("Running MRP for Site"))
            {
                List<string> s = new List<string>(
                line.Split(new string[] { " - " }, StringSplitOptions.None));
                Console.WriteLine(s[0].ToString());
                Console.WriteLine(s[1].ToString());
                string format = "yyyy-MM-dd-hh:mm:ss:ffffff";
                string date = s[0].ToString().Replace('.', ':');                   
                DateTime dt = DateTime.ParseExact(date, format, CultureInfo.InvariantCulture);
                /*
                if (conn.State != ConnectionState.Open)
                {
                    conn = new SqlConnection { ConnectionString = Properties.Settings.Default.ConnectionString };
                    conn.Open();
                }
                {
                    String query = @"INSERT INTO
jm81lzqq

jm81lzqq1#

这是最重要的 hh . 那是一个12小时的钟。你需要 HH 一个24小时的时钟。请参阅自定义日期和时间格式字符串-“hh”自定义格式说明符。
在这里,它以单元测试的形式接受输入字符串并验证结果是否正确(尽管可能很粗糙)

[TestMethod]
public void ParseDateTimeTest()
{
    var input = "2020-06-25-13.23.04.220000 - Running MRP for Site";
    var firstSegment = input.Split(new string[] { " - " }, StringSplitOptions.None)[0];
    string format = "yyyy-MM-dd-HH.mm.ss.ffffff";
    var parsed = DateTime.ParseExact(firstSegment, format, CultureInfo.InvariantCulture);
    Assert.AreEqual(13, Math.Truncate((parsed - new DateTime(2020, 6, 25)).TotalHours));
}

相关问题