解析任何有效的DateTime格式为SQL Server兼容格式? [英] Parsing any valid DateTime format to SQL Server compatible format?

查看:148
本文介绍了解析任何有效的DateTime格式为SQL Server兼容格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我来自印度,我们遵循 dd-mm-yyyy 日期格式。



我的问题是,我们的各种客户端需要他们的日期时间以上述格式显示。但是我们用作后端的SQL Server不能将dd-mm-yyyy识别为有效的日期时间格式。我们通常做的是通过使用 Convert.ToDateTime()或DateTime.Parse将 CultureInfo 转换给定的日期为mm-dd-yyyy DateTime.TryParse()



另外,我碰到另一种情况,当我的输入日期格式正确时说 MM-dd-yyyy或MM / dd / yyyy或yyyy-MM-dd ,但是我的本地系统日期不是上面的,那么它抛出异常,格式正确。我无法弄清楚如何自动解决。



Exisitng自定义方法:但在大多数情况下,此操作失败的次数最多。

  ///< summary> 
///将字符串值从提供的值解压缩到DateTime。
///用法:var i = Common.ParseDate(yourDateString);
///< / summary>
///< param name =value>< / param>
///< return>< / returns>
private static DateTime ParseDate(string value)
{
DateTime i;
if(!DateTime.TryParse(value,out i))
return Convert.ToDateTime(01/01/1700,CultureInfo.InvariantCulture);
//假设01/01/1700为默认值,而不是null。
return i;
}

请在上述建议更改,以便我的方法将自动转换任何datetime到SQL Server兼容的格式,如yyyy-mm-dd。



用法应该是这样:

 输入:
DateTime dt = DateTimeParser(29-12-2013​​); // in case or double figure months and dates

dt的输出:2013-12-29或12/29/2013

DateTime dt = DateTimeParser(9- 2-2013); // in case or single figure months and dates

dt的输出:2013-2-9或2/9/2013(sql-server compatible)



请注意:datetime转换应与系统时钟无关。



提前感谢

解决方案

我有一次想要的东西,



实际上,您可以收集所有的资料,因为正确性不重要(例如MS Excel会输入文字日期时间)可能的日期时间格式从内置的文化,以及许多自定义格式,你可以自己定义。我曾经想要一个非常全面的日期时间格式匹配。



我做了一些非常类似于nawfal的回答。这里是一个解决方案,结合他的答案与我的大套格式:

  static string [] GetDateTimeFormats()
{
var defaultFormats = CultureInfo.GetCultures(CultureTypes.AllCultures)
.SelectMany(x => x.DateTimeFormat.GetAllDateTimePatterns())
.Distinct(); //加快事情

//丢弃一些不值得考虑的格式
var goodDefaultFormats = defaultFormats.Where(x =>!IsPoorFormat(x)&& !IsConflictingFormat(x));

var customFormats = GetCustomDateTimeFormats();

var allFormats = goodDefaultFormats.Concat(customFormats).ToArray();

//一种获取逗号分隔时间格式的技术,
//例如,从dd-MM-yyyy h:mm:ss tt我们得到 - > dd-MM-yyyy,h:mm:ss tt
var moreCustomFormats = allFormats.Select(f => new
{
f,
i = f.IndexOf(h ,StringComparison.OrdinalIgnoreCase)
})
。其中(x => xi> = 0)
.Select(x => new {xf,c = xf [ ],xi})
.Where(x =>!char.IsPunctuation(xc)&& xc!='t')
.Select(x => xfInsert ,));

allFormats = allFormats.Union(moreCustomFormats).ToArray(); // Union remove duplicates

return allFormats;
}

static bool IsPoorFormat(string format)
{
//如果有任何
时所有可丢弃的格式string [] ignorables = {HH ,MMMM,yy,MMMM,yyy,MMMM,yyyy,yyyy MMMM,yyyy.M,yyyy-MM,
,MMMM,yyyy,yyyy.MMMM};

return ignorables.Contains(format);
}

//删除冲突的日期格式,例如
//格式如MM-dd-yy,yy-MM-dd,dd-MM-yy等可以冲突
static bool IsConflictingFormat(string format)
{
//在这个例子中,我们丢弃像Md-yy,yy-MM-dd等格式,但保持dd-MM-yy
//如果你想保持MM-dd-yy,占位符数组应该是{'d','y'},
//,类似地,如果首选格式是yy-MM- dd,array应该是{'M','d'}
var placeholder = new [] {'M','y'};

var separatorators = new [] {'','。',' - ','/'};

var patterns = placeholders.Select(x => x.ToString())
.SelectMany(x => new [] {x,x + x})
。选择多(x =>分隔符,(x,y)=> x + y);

return patterns.Any(format.StartsWith);
}

static string [] GetCustomDateTimeFormats()
{
return new []
{
dddd,MMMM d,yyyy h :mm:ss tt,
dddd,MMMM d,yyyy H:mm:ss,
dddd,MMMM d,yyyy h:mm tt,
dddd,MMMM d,yyyy H:mm,

dddd,MMM d,yyyy h:mm:ss tt,
dddd,MMM d,yyyy H:mm:ss,
dddd,MMM d,yyyy h:mm tt,
dddd,MMM d,yyyy H:mm,

ddd,MMMM d,yyyy h:mm :ss tt,
ddd,MMMM d,yyyy H:mm:ss,
ddd,MMMM d,yyyy h:mm tt,
ddd,MMMM d, yyyy H:mm,

ddd,MMM d,yyyy h:mm:ss tt,
ddd,MMM d,yyyy H:mm:ss,
ddd,MMM d,yyyy h:mm tt,
ddd,MMM d,yyyy H:mm,



dddd,MMMM d yyyy h:mm:ss tt,
dddd,MMMM d yyyy H:mm:ss,
dddd,MMMM d yyyy h:mm tt,
dddd, MMMM d yyyy H:mm,

dddd,MMM d yyyy h:mm:ss tt,
dddd,MMM d yyyy H:mm:ss,
dddd,MMM d yyyy h:mm tt,
dddd,MMM d yyyy H:mm,

ddd,MMMM d yyyy h:mm:ss tt
ddd,MMMM d yyyy H:mm:ss,
ddd,MMMM d yyyy h:mm tt,
ddd,MMMM d yyyy H:mm,

ddd,MMM d yyyy h:mm:ss tt,
ddd,MMM d yyyy H:mm:ss,
ddd,MMM d yyyy h:mm tt,
ddd,MMM d yyyy H:mm,

//////////////////////// ///

dddd,d MMMM,yyyy h:mm:ss tt,
dddd,d MMMM,yyyy H:mm:ss,
dddd ,d MMMM,yyyy h:mm tt,
dddd,d MMMM,yyyy H:mm,

dddd,d MMM,yyyy h:mm:ss tt
dddd,d MMM,yyyy H:mm:ss,
dddd,d MMM,yyyy h:mm tt,
dddd,d MMM,yyyy H: ,

ddd,d MMMM,yyyy h:mm:ss tt,
ddd,d MMMM,yyyy H:mm:ss,
ddd,d MMMM,yyyy h:mm tt,
ddd,d MMMM,yyyy H:mm,

ddd,d MMM,yyyy h:mm:ss tt,
ddd,d MMM,yyyy H:mm:ss,
ddd,d MMM,yyyy h:mm tt,
ddd,d MMM,yyyy H:mm,



dddd,d MMMM yyyy h:mm:ss tt,
dddd,d MMMM yyyy H:mm:ss,
dddd,d MMMM yyyy h:mm tt,
dddd,d MMMM yyyy H:mm,

dddd,d MMM yyyy h:mm:ss tt,
dddd,d MMM yyyy H:mm:ss,
dddd,d MMM yyyy h:mm tt,
dddd,d MMM yyyy H:mm,

ddd,d MMMM yyyy h:mm:ss tt,
ddd,d MMMM yyyy H:mm:ss,
ddd,d MMMM yyyy h:mm tt ,
ddd,d MMMM yyyy H:mm,

ddd,d MMM yyyy h:mm:ss tt,
ddd,d MMM yyyy H :mm:ss,
ddd,d MMM yyyy h:mm tt,
ddd,d MMM yyyy H:mm,

///// ////////////////////////////

yyyy,MMMM dh:mm:ss tt,
yyyy,MMMM d H:mm:ss,
yyyy,MMMM dh:mm tt,
yyyy,MMMM d H:mm,

yyyy,MMM dh:mm:ss tt,
yyyy,MMM d H:mm:ss,
yyyy,MMM dh:mm tt,
yyyy d H:mm,

yyyy,MM dh:mm:ss tt,
yyyy,MM d H:mm:ss,
yyyy dh:mm tt,
yyyy,MM d H:mm,



yyyy MMMM dh:mm:ss tt,
yyyy MMMM d H:mm:ss,
yyyy MMMM dh:mm tt,
yyyy MMMM d H:mm,

yyyy MMM dh :mm:ss tt,
yyyy MMM d H:mm:ss,
yyyy MMM dh:mm tt,
yyyy MMM d H:mm,

yyyy MM dh:mm:ss tt,
yyyy MM d H:mm:ss,
yyyy MM dh:mm tt yyyy MM d H:mm,

///////////////////////

yyyy, d MMMM h:mm:ss tt,
yyyy,d MMMM H:mm:ss,
yyyy,d MMMM h:mm tt,
yyyy,d MMMM H:mm,

yyyy,d MMM h:mm:ss tt,
yyyy,d MMM H:mm:ss,
yyyy,d MMM h:mm tt,
yyyy,d MMM H:mm,

yyyy,d MM h:mm:ss tt,
yyyy,d MM H:mm:ss,
yyyy,d MM h:mm tt,
yyyy,d MM H:mm,

$ b b $ byyyy d MMMM h:mm:ss tt,
yyyy d MMMM H:mm:ss,
yyyy d MMMM h:mm tt,
yyyy d MMMM H:mm,

yyyy d MMM h:mm:ss tt,
yyyy d MMM H:mm:ss,
yyyy d MMM h:mm tt,
yyyy d MMM H:mm,

yyyy d MM h:mm:ss tt,
yyyy d MM H:mm :ss,
yyyy d MM h:mm tt,
yyyy d MM H:mm,

/////////// ///////////////////////

MMMM d,yyyy h:mm:ss tt,
MMMM d, yyyy H:mm:ss,
MMMM d,yyyy h:mm tt,
MMMM d,yyyy H:mm,

MMM d,yyyy h:mm:ss tt,
MMM d,yyyy H:mm:ss,
MMM d,yyyy h:mm tt,
MMM d,yyyy H: mm,



MMMM d yyyy h:mm:ss tt,
MMMM d yyyy H:mm:ss,
MMMM d yyyy h:mm tt,
MMMM d yyyy H:mm,

MMM d yyyy h:mm:ss tt,
MMM d yyyy H:mm:ss,
MMM d yyyy h:mm tt,
MMM d yyyy H:mm,

/////// /////////////////////////////

d MMMM,yyyy h:mm:ss tt,
d MMMM,yyyy H:mm:ss,
d MMMM,yyyy h:mm tt,
d MMMM,yyyy H:mm,
b $ bd MMM,yyyy h:mm:ss tt,
d MMM,yyyy H:mm:ss,
d MMM,yyyy h:mm tt,
d MMM,yyyy H:mm,



d MMMM yyyy h:mm:ss tt,
d MMMM yyyy H:mm :ss,
d MMMM yyyy h:mm tt,
d MMMM yyyy H:mm,

d MMM yyyy h:mm:ss tt ,
d MMM yyyy H:mm:ss,
d MMM yyyy h:mm tt,
d MMM yyyy H:mm,
$ b b /////////////////////////

dddd,MMMM d,yyyy,
dddd, MMM d,yyyy,

ddd,MMMM d,yyyy,
ddd,MMM d,yyyy,



dddd,MMMM d yyyy,
dddd,MMM d yyyy,

ddd,MMMM d yyyy,
ddd,MMM d yyyy

////////////////////////////

dddd,d MMMM,yyyy ,
dddd,d MMM,yyyy,

ddd,d MMMM,yyyy,
ddd,d MMM,yyyy

$ bdddd,d MMMM yyyy,
dddd,d MMM yyyy,

ddd,d MMMM yyyy,
ddd,d MMM yyyy,

///////////////////////////

MMMM d,yyyy,
MMM d,yyyy,

MMMM d yyyy,
MMM d yyyy,
$ b b //////////////////////////

d MMMM,yyyy,
d MMM, yyyy,

d MMMM yyyy,
d MMM yyyy,

/////////////// ///////////

yyyy,MMMM d,
yyyy,MMM d,

yyyy MMMM d ,
yyyy MMM d,

////////////////////////////

yyyy d MMMM,
yyyy d MMM,

yyyy,d MMMM,
yyyy,d MMM,
b $ b ///////////////////////////

d MMMM,
d MMM ,

/////////////////////////////

MMMM d ,
MMM d,

//////////////////////////////

dd,
};
}


I am from India and here we follow dd-mm-yyyy date format.

My problem is that, our various client needs their date time to be displayed in the above format. But the SQL Server we use as our backend,does not recognizes dd-mm-yyyy as a valid date time format. What we generally do is to convert the given date to mm-dd-yyyy using CultureInfo either by Using Convert.ToDateTime() or DateTime.Parse or DateTime.TryParse()

Also, I came accross another situation, when my input date is in correct format say MM-dd-yyyy or MM/dd/yyyy or yyyy-MM-dd, but my local system date is other than above, then it throws exception, input string in not in correct format. I am not able to figure out how to resolve it automatically.

Exisitng Custom Method: But this fails most the times in most of the scenarios.

 /// <summary>
    /// Parses string value from a supplied value to DateTime.
    /// Usage: var i = Common.ParseDate(yourDateString);
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    private static DateTime ParseDate(string value)
    {
        DateTime i;
        if (!DateTime.TryParse(value, out i))
            return Convert.ToDateTime("01/01/1700",CultureInfo.InvariantCulture); 
// Assuming 01/01/1700 as default value instead of null.
        return i;
    }

Please suggest change in the above so that , my method will automatically convert any datetime to SQL Server Compatible format like yyyy-mm-dd.

Usage should be something like this:

Input:
DateTime dt = DateTimeParser("29-12-2013"); // in case or double figure months and dates

Output of dt: either 2013-12-29 or 12/29/2013

DateTime dt = DateTimeParser("9-2-2013"); // in case or single figure months and dates

Output of dt: either 2013-2-9 or 2/9/2013 (sql-server compatible)

Please note: The datetime conversion should be system clock independent.

Thanks in advance

解决方案

I had this exact thing wanted once, though we were in a position to assume what the user meant since correctness wasn't important (for something like MS Excel does when you input a text date time).

Actually you could collect all the possible date-time formats from the built in cultures, and also many custom formats you could define yourself. I once wanted a very comprehensive date time format matching.

I have done something very similar to nawfal's answer. Here's a solution combining his answer with my large set of formats:

static string[] GetDateTimeFormats()
{
    var defaultFormats = CultureInfo.GetCultures(CultureTypes.AllCultures)
                                    .SelectMany(x => x.DateTimeFormat.GetAllDateTimePatterns())
                                    .Distinct(); //to speed up things

    //discard some formats that're not worthy of consideration
    var goodDefaultFormats = defaultFormats.Where(x => !IsPoorFormat(x) && !IsConflictingFormat(x));

    var customFormats = GetCustomDateTimeFormats();

    var allFormats = goodDefaultFormats.Concat(customFormats).ToArray();

    //a technique to get comma separated time formats, 
    //for eg, from dd-MM-yyyy h:mm:ss tt we get -> dd-MM-yyyy, h:mm:ss tt
    var moreCustomFormats = allFormats.Select(f => new 
                                      { 
                                          f, 
                                          i = f.IndexOf(" h", StringComparison.OrdinalIgnoreCase) 
                                      })
                                      .Where(x => x.i >= 0)
                                      .Select(x => new { x.f, c = x.f[x.i - 1], x.i })
                                      .Where(x => !char.IsPunctuation(x.c) && x.c != 't')
                                      .Select(x => x.f.Insert(x.i, ","));

    allFormats = allFormats.Union(moreCustomFormats).ToArray(); //Union removes duplicates

    return allFormats;
}

static bool IsPoorFormat(string format)
{
    //all discardable formats in case any
    string[] ignorables = { "HH", "MMMM yyyy", "MMMM, yyyy", "yyyy MMMM", "yyyy.M", "yyyy-MM", 
                            "MMMM,yy", "MMMM, yy", "MMMM,yyyy", "MMMM, yyyy", "yyyy. MMMM" };

    return ignorables.Contains(format);
}

//to remove conflicting date formats, for example, 
//formats like MM-dd-yy, yy-MM-dd, dd-MM-yy etc can be conflicting
static bool IsConflictingFormat(string format)
{
    //in this example we discard formats like M-d-yy, yy-MM-dd etc, but keep dd-MM-yy
    //in case you want to keep MM-dd-yy, the placeholders array should be { 'd', 'y' },
    //and similarly if the preferred format is yy-MM-dd, array should be { 'M', 'd' }
    var placeholders = new[] { 'M', 'y' };

    var separators = new[] { ' ', '.', '-', '/' };

    var patterns = placeholders.Select(x => x.ToString())
                               .SelectMany(x => new[] { x, x + x })
                               .SelectMany(x => separators, (x, y) => x + y);

    return patterns.Any(format.StartsWith);
}

static string[] GetCustomDateTimeFormats()
{
    return new[] 
    {
        "dddd, MMMM d, yyyy h:mm:ss tt",
        "dddd, MMMM d, yyyy H:mm:ss",
        "dddd, MMMM d, yyyy h:mm tt",
        "dddd, MMMM d, yyyy H:mm",

        "dddd, MMM d, yyyy h:mm:ss tt",
        "dddd, MMM d, yyyy H:mm:ss",
        "dddd, MMM d, yyyy h:mm tt",
        "dddd, MMM d, yyyy H:mm",

        "ddd, MMMM d, yyyy h:mm:ss tt",
        "ddd, MMMM d, yyyy H:mm:ss",
        "ddd, MMMM d, yyyy h:mm tt",
        "ddd, MMMM d, yyyy H:mm",

        "ddd, MMM d, yyyy h:mm:ss tt",
        "ddd, MMM d, yyyy H:mm:ss",
        "ddd, MMM d, yyyy h:mm tt",
        "ddd, MMM d, yyyy H:mm",



        "dddd, MMMM d yyyy h:mm:ss tt",
        "dddd, MMMM d yyyy H:mm:ss",
        "dddd, MMMM d yyyy h:mm tt",
        "dddd, MMMM d yyyy H:mm",

        "dddd, MMM d yyyy h:mm:ss tt",
        "dddd, MMM d yyyy H:mm:ss",
        "dddd, MMM d yyyy h:mm tt",
        "dddd, MMM d yyyy H:mm",

        "ddd, MMMM d yyyy h:mm:ss tt",
        "ddd, MMMM d yyyy H:mm:ss",
        "ddd, MMMM d yyyy h:mm tt",
        "ddd, MMMM d yyyy H:mm",

        "ddd, MMM d yyyy h:mm:ss tt",
        "ddd, MMM d yyyy H:mm:ss",
        "ddd, MMM d yyyy h:mm tt",
        "ddd, MMM d yyyy H:mm", 

        ///////////////////////////

        "dddd, d MMMM, yyyy h:mm:ss tt", 
        "dddd, d MMMM, yyyy H:mm:ss", 
        "dddd, d MMMM, yyyy h:mm tt", 
        "dddd, d MMMM, yyyy H:mm", 

        "dddd, d MMM, yyyy h:mm:ss tt", 
        "dddd, d MMM, yyyy H:mm:ss", 
        "dddd, d MMM, yyyy h:mm tt", 
        "dddd, d MMM, yyyy H:mm", 

        "ddd, d MMMM, yyyy h:mm:ss tt", 
        "ddd, d MMMM, yyyy H:mm:ss", 
        "ddd, d MMMM, yyyy h:mm tt", 
        "ddd, d MMMM, yyyy H:mm", 

        "ddd, d MMM, yyyy h:mm:ss tt", 
        "ddd, d MMM, yyyy H:mm:ss", 
        "ddd, d MMM, yyyy h:mm tt", 
        "ddd, d MMM, yyyy H:mm", 



        "dddd, d MMMM yyyy h:mm:ss tt", 
        "dddd, d MMMM yyyy H:mm:ss", 
        "dddd, d MMMM yyyy h:mm tt", 
        "dddd, d MMMM yyyy H:mm", 

        "dddd, d MMM yyyy h:mm:ss tt", 
        "dddd, d MMM yyyy H:mm:ss", 
        "dddd, d MMM yyyy h:mm tt", 
        "dddd, d MMM yyyy H:mm", 

        "ddd, d MMMM yyyy h:mm:ss tt", 
        "ddd, d MMMM yyyy H:mm:ss", 
        "ddd, d MMMM yyyy h:mm tt", 
        "ddd, d MMMM yyyy H:mm", 

        "ddd, d MMM yyyy h:mm:ss tt", 
        "ddd, d MMM yyyy H:mm:ss", 
        "ddd, d MMM yyyy h:mm tt", 
        "ddd, d MMM yyyy H:mm", 

        /////////////////////////////////

        "yyyy, MMMM d h:mm:ss tt", 
        "yyyy, MMMM d H:mm:ss", 
        "yyyy, MMMM d h:mm tt", 
        "yyyy, MMMM d H:mm", 

        "yyyy, MMM d h:mm:ss tt", 
        "yyyy, MMM d H:mm:ss", 
        "yyyy, MMM d h:mm tt", 
        "yyyy, MMM d H:mm", 

        "yyyy, MM d h:mm:ss tt", 
        "yyyy, MM d H:mm:ss", 
        "yyyy, MM d h:mm tt", 
        "yyyy, MM d H:mm", 



        "yyyy MMMM d h:mm:ss tt", 
        "yyyy MMMM d H:mm:ss", 
        "yyyy MMMM d h:mm tt", 
        "yyyy MMMM d H:mm", 

        "yyyy MMM d h:mm:ss tt", 
        "yyyy MMM d H:mm:ss", 
        "yyyy MMM d h:mm tt", 
        "yyyy MMM d H:mm", 

        "yyyy MM d h:mm:ss tt", 
        "yyyy MM d H:mm:ss", 
        "yyyy MM d h:mm tt", 
        "yyyy MM d H:mm", 

        ///////////////////////

        "yyyy, d MMMM h:mm:ss tt", 
        "yyyy, d MMMM H:mm:ss", 
        "yyyy, d MMMM h:mm tt", 
        "yyyy, d MMMM H:mm", 

        "yyyy, d MMM h:mm:ss tt", 
        "yyyy, d MMM H:mm:ss", 
        "yyyy, d MMM h:mm tt", 
        "yyyy, d MMM H:mm", 

        "yyyy, d MM h:mm:ss tt", 
        "yyyy, d MM H:mm:ss", 
        "yyyy, d MM h:mm tt", 
        "yyyy, d MM H:mm", 



        "yyyy d MMMM h:mm:ss tt", 
        "yyyy d MMMM H:mm:ss", 
        "yyyy d MMMM h:mm tt", 
        "yyyy d MMMM H:mm", 

        "yyyy d MMM h:mm:ss tt", 
        "yyyy d MMM H:mm:ss", 
        "yyyy d MMM h:mm tt", 
        "yyyy d MMM H:mm", 

        "yyyy d MM h:mm:ss tt", 
        "yyyy d MM H:mm:ss", 
        "yyyy d MM h:mm tt", 
        "yyyy d MM H:mm",

        ////////////////////////////////

        "MMMM d, yyyy h:mm:ss tt",
        "MMMM d, yyyy H:mm:ss",
        "MMMM d, yyyy h:mm tt",
        "MMMM d, yyyy H:mm",

        "MMM d, yyyy h:mm:ss tt",
        "MMM d, yyyy H:mm:ss",
        "MMM d, yyyy h:mm tt",
        "MMM d, yyyy H:mm",



        "MMMM d yyyy h:mm:ss tt",
        "MMMM d yyyy H:mm:ss",
        "MMMM d yyyy h:mm tt",
        "MMMM d yyyy H:mm",

        "MMM d yyyy h:mm:ss tt",
        "MMM d yyyy H:mm:ss",
        "MMM d yyyy h:mm tt",
        "MMM d yyyy H:mm",

        ////////////////////////////////////

        "d MMMM, yyyy h:mm:ss tt", 
        "d MMMM, yyyy H:mm:ss", 
        "d MMMM, yyyy h:mm tt",
        "d MMMM, yyyy H:mm",  

        "d MMM, yyyy h:mm:ss tt", 
        "d MMM, yyyy H:mm:ss", 
        "d MMM, yyyy h:mm tt",
        "d MMM, yyyy H:mm",  



        "d MMMM yyyy h:mm:ss tt", 
        "d MMMM yyyy H:mm:ss", 
        "d MMMM yyyy h:mm tt",
        "d MMMM yyyy H:mm",  

        "d MMM yyyy h:mm:ss tt", 
        "d MMM yyyy H:mm:ss", 
        "d MMM yyyy h:mm tt",
        "d MMM yyyy H:mm",  

        /////////////////////////

        "dddd, MMMM d, yyyy",
        "dddd, MMM d, yyyy",

        "ddd, MMMM d, yyyy",
        "ddd, MMM d, yyyy",



        "dddd, MMMM d yyyy", 
        "dddd, MMM d yyyy",

        "ddd, MMMM d yyyy",
        "ddd, MMM d yyyy",

        //////////////////////////

        "dddd, d MMMM, yyyy", 
        "dddd, d MMM, yyyy", 

        "ddd, d MMMM, yyyy", 
        "ddd, d MMM, yyyy",  



        "dddd, d MMMM yyyy",
        "dddd, d MMM yyyy",

        "ddd, d MMMM yyyy", 
        "ddd, d MMM yyyy", 

        ///////////////////////////

        "MMMM d, yyyy",
        "MMM d, yyyy",

        "MMMM d yyyy",
        "MMM d yyyy",

        //////////////////////////

        "d MMMM, yyyy", 
        "d MMM, yyyy",

        "d MMMM yyyy", 
        "d MMM yyyy",

        //////////////////////////

        "yyyy, MMMM d", 
        "yyyy, MMM d", 

        "yyyy MMMM d", 
        "yyyy MMM d", 

        //////////////////////////

        "yyyy d MMMM", 
        "yyyy d MMM", 

        "yyyy, d MMMM", 
        "yyyy, d MMM", 

        ///////////////////////////

        "d MMMM",
        "d MMM",

        /////////////////////////////

        "MMMM d", 
        "MMM d",

        ////////////////////////////

        "dd",
    };
}

这篇关于解析任何有效的DateTime格式为SQL Server兼容格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆