我想转换一个c#日期时间到“YYYYMMDDHHMMSS”格式。但我没有找到一个内置的方法来获得这种格式?任何评论?


当前回答

我很惊讶没人知道这是怎么回事。 任何格式都可以使用下面的指导原则创建:

自定义日期和时间格式字符串

对于你的具体例子(正如其他人所指出的那样),使用类似于

my_format="yyyyMMddHHmmss";
DateTime.Now.ToString(my_format);

其中my_format可以是y,M,H, M, s,f, f和更多的字符串组合! 请查看链接。

其他回答

你只需要在月(MM)和分钟(MM)之间小心:

DateTime dt = DateTime.Now; // Or whatever
string s = dt.ToString("yyyyMMddHHmmss");

(还要注意,HH是24小时时钟,而HH是12小时时钟,通常与t或tt一起作为am/pm指示符。)

如果你想把它作为复合格式字符串的一部分,你可以使用:

string s = string.Format("The date/time is: {0:yyyyMMddHHmmss}", dt);

有关详细信息,请参阅MSDN页面自定义日期和时间格式。

如果您使用ReSharper,请使用':'获得帮助(见图)

使用c# 6.0

$"Date-{DateTime.Now:yyyyMMddHHmmss}"

以上任何一个答案都不能解决你的问题的可能性很小。尽管如此,我还是分享了我的方法,它总是适用于不同格式的约会时间。

//Definition   
     public static DateTime ConvertPlainStringToDatetime(string Date, string inputFormat, string  outputFormat)
            {
                DateTime date;
                CultureInfo enUS = new CultureInfo("en-US");
                DateTime.TryParseExact(Date, inputFormat, enUS,
                                    DateTimeStyles.AdjustToUniversal, out date);

                string formatedDateTime = date.ToString(outputFormat);
                return Convert.ToDateTime(formatedDateTime);   
            }
//Calling

    string oFormat = "yyyy-MM-dd HH:mm:ss";
    DateTime requiredDT = ConvertPlainStringToDatetime("20190205","yyyyMMddHHmmss", oFormat  );
    DateTime requiredDT = ConvertPlainStringToDatetime("20190508-12:46:42","yyyyMMdd-HH:mm:ss", oFormat);

指定格式化的DateTime为Utc:

步骤1 -初始日期

var initialDtm = DateTime.Now;

步骤2 -格式日期为愿意("yyyyMMddHHmmss")

var formattedDtm = DateTime.ParseExact(initialDtm.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);    

步骤3 -指定日期类型(Utc)

var specifiedDtm = DateTime.SpecifyKind(formattedDtm, DateTimeKind.Utc);