2016-11-08 65 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"));