dateTime 与string 转换(round-trip)

    xiaoxiao2023-10-08  162

    DateTime标准的字符串格式:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-date-and-time-format-strings?view=netframework-4.8DateTime 自定义字符串格式 :https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/custom-date-and-time-format-strings?view=netframework-4.8dateTime标准格式字符串是可以直接调用DateTime.Parse() 直接转为 date Time对象的。自定义格式的字符串可能会出现转失败的情况。 代码示例: using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; namespace dateTime2Str { class Program { static void Main(string[] args) { //使用Round - trip DateTime values. DateTime dt = DateTime.Now; string dtStr = dt.ToString("o"); DateTime RoundTripDt = DateTime.Parse(dtStr); Console.WriteLine($"original: {dtStr}---round-trip: {RoundTripDt.ToString("o")}"); //使用标准的其他格式 DateTime dt2 = DateTime.SpecifyKind(new DateTime(2018,12,23,6,30,25), DateTimeKind.Local); string dt2Str = dt2.ToString(" yyyy-MM-dd hh:mm:ss"); DateTime roundTripDt2 = DateTime.Parse(dt2Str, null, DateTimeStyles.RoundtripKind); Console.WriteLine($"original: {dt2Str}---round-trip: {roundTripDt2.ToString("yyyy-MM-dd hh:mm:ss")}"); 自定义日期格式 Console.WriteLine("日期与string格式转换"); string dateTimeStr = DateTime.Now.ToString("yyyyMMddHHmmss"); DateTime dateTime = DateTime.ParseExact(dateTimeStr, "yyyyMMddHHmmss", null); Console.WriteLine($"original: {dateTimeStr}---round-trip: {dateTime.ToString("yyyyMMddHHmmss")}"); /// 使用IFormatProvider DateTimeFormatInfo dtFormat = new DateTimeFormatInfo(); dtFormat.ShortDatePattern = "yyyy/MM/dd HH:mm:ss";//--这里日期格式必须为标准格式 DateTime dt3 = Convert.ToDateTime("2011/05/26 11:50:34", dtFormat); Console.ReadKey(); } } }

    输出

    original: 2019-05-25T12:08:45.7855241+08:00—round-trip: 2019-05-25T12:08:45.7855241+08:00 original: 2018-12-23 06:30:25—round-trip: 2018-12-23 06:30:25 日期与string格式转换 original: 20190525120845—round-trip: 20190525120845

    最新回复(0)