2016-11-08 66 views
0

在C#中,我們有日期格式 日:DD(小寫字母)月:MM(資金)年:YYYY(小)轉換日期格式爲C#

但moment.js日期格式稍有不同 日:DD(資金)月:MM(資金)年:YYYY(資本)

所以,當我從前端(JavaScript)的發送日期格式到後端(C#) 我正由於不匹配的異常日期格式。

在C#中有什麼方法可以將時間格式dateformat轉換爲c#格式嗎?

+0

這是一個字符串,所以你試過'String.ToUpper'? – scrappedcola

+1

或'String.ToLower',因爲OP將它從JavaScript發送到C#:)。但它仍然不起作用,因爲'MM'保持不變。你需要編寫一個轉換函數;跨平臺/語言的日期格式字符串確實沒有標準。 –

+0

@MikeMcCaughan我認爲你有問題。 我們沒有任何內置轉換。 – user7131571

回答

0

擴展梅託德的日期時間

public static class FormatProviderExtension 
{ 
    public static string ToMomentJSString(this DateTime arg, string format) 
    { 
     if (arg == null) throw new ArgumentNullException("arg"); 
     if (arg.GetType() != typeof(DateTime)) return arg.ToString(); 
     var date = (DateTime)arg; 
     format = format 
      .Replace("DD", "dd") 
      .Replace("YYYY", "yyyy"); //etc. 
     return date.ToString(format); 
    } 
} 

用法:

var d = DateTime.Now; 
Console.WriteLine(d.ToMomentJSString("DD MM YYYY")); 
Console.WriteLine(d.ToMomentJSString("DD")); 
Console.WriteLine(d.ToMomentJSString("YYYY"));