yyyyMMddHHmmssmmm的字符串,例如:20090414200000000 转化为Datetime我用了但无效的方法:1.DateTime dt = DateTime.ParseExact(datetime, "yyyyMMddHHmmssmmm", CultureInfo.InvariantCulture);2.        
                dt.Year = FileName.Substring(10, 4);
                dt.Date = FileName.Substring(14, 4);
                dt.Hour = FileName.Substring(18, 2);
                dt.Minute = FileName.Substring(20, 2);
                dt.Second = FileName.Substring(22, 2);
                dt.Millisecond = FileName.Substring(24, 3);错误是dt.Year  dt.Date等是只读的。求正确方法~~~~

解决方案 »

  1.   


    DateTime dt = DateTime.ParseExact("20090414200000000", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture); 
      

  2.   

    DateTime dt = DateTime.TryParseExact("20090414200000000", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture); 这个比较好如果出错。不会抛出异常
      

  3.   

    DateTime dt = DateTime.ParseExact("", @"yyMMddHHmmssmmm", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
      

  4.   

    好好看看20090414200000000 这个字符串,后面还有3位是毫秒数,所以还要在最后加上fff
    DateTime dt = DateTime.ParseExact("20090414200000000", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture); 
      

  5.   

    我都是用Convert.toDataTime直接转的,前提是时间字符串格式肯定是符合规则的
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Globalization;namespace CSharp
    {
       
        class Program
        {
            static void Main(string[] args)
            {
                DateTime dt = DateTime.ParseExact("20090414200000000", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture);
                Console.WriteLine(dt.ToString());
            }
           
           
        }
    }"yyyyMMddHHmmssfff"
    不是yyyyMMddHHmmssmmm",