- DateTime标准的字符串格式:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-date-and-time-format-strings?view=netframework-4.8
- DateTime 自定义字符串格式 :https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/custom-date-and-time-format-strings?view=netframework-4.8
- dateTime标准格式字符串是可以直接调用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