使用分隔符更改txt/csv文件中的日期格式



我有很多包含数据的.txt文件。数据用,分隔。

在第三列中,数据采用dd-mm-yyyy格式。但它必须是yyyy/mm/dd格式。更改机器格式不是解决方案。

这些文件足够小,可以加载到内存中,并按以下方式打开,但我不知道如何解决日期问题。谁能帮我?

        foreach (string x in a)
        {
            string somePath = @"C:test";
            string filename = x;
            string path = Path.Combine(somePath, filename);
            string str = File.ReadAllText(path);
            str = str.Replace("AS", "");
            File.WriteAllText(path, str);
        }

下面是一个使用ReadAllLines()WriteAllLines()的快速示例:

        string[] lines;
        string somePath = @"C:test";
        foreach (string x in a)
        {
            string path = Path.Combine(somePath, x);
            lines = File.ReadAllLines(path);
            for (int i = 0; i < lines.Length;i++)
            {
                lines[i] = lines[i].Replace("AS", "");
                string[] values = lines[i].Split(',');
                if (values.Length >= 3)
                {
                    string[] parts = values[2].Split('-');
                    if (parts.Length == 3)
                    {
                        values[2] = String.Format("{0}/{1}/{2}", parts[2], parts[1], parts[0]);
                        lines[i] = String.Join(",", values);
                    }
                }
            }
            File.WriteAllLines(path, lines);
        }

只需遍历所有行,拆分字符串,尝试解析它,然后以正确的格式将其写入输出文件。

foreach (string x in a)
{
    string somePath = @"C:test";
    string filename = x;
    string path = Path.Combine(somePath, filename);
    string str = File.ReadAllText(path);
    str = str.Replace("AS", "");
    var lines = str.Split('n');
    foreach(var line in lines)
    {
        var parts = line.Split(',');
        if(parts.Length > 2)
        {
            var d = parts[2];
            DateTime dateValue;
            if (DateTime.TryParseExact(d, "dd-MM-yyyy", new CultureInfo("en-US"), 
                 DateTimeStyles.None, out dateValue))
                {
                    var dateTxt = dateValue.ToString("yyyy/mm/dd");
                      ...etc...
                 }
            }
        }
        File.WriteAllText(path, str);
    }

相关内容

  • 没有找到相关文章

最新更新