从C#中的DateTime获取全天名称

时间:2016-04-01 07:28:24

标签: c# linq datetime

当我从日历中选择日期时,我有js日历,它调用C#service,它以字符串作为参数。它的格式为2016年4月18日星期一00:00:00 GMT 0500。我想星期一的星期一。

我的java脚本代码是

$scope.deliveryDateTime = {  Day: new Date(2015, 11, 28, 14, 57) };
 var DeliveryDay =  $scope.deliveryDateTimeData.Day;

        $http.get(meta.service.GetTimeAvlb+'?day='+ DeliveryDay).
           success(function (data) {
               debugger;
               console.log("Data" + data);
               $scope.AvailiableTimeData = data.data;                  
               }                 
           }).
           error(function (data) {
           }); 

这是我的C#服务代码

public ApiResult GetTimeAvlb( string day )
     {                    
        var splitDay = day.Split(' ');
        string dayName1 = splitDay[0].ToString();            
        apiresilt.data = db.TimeAvaliblities.Where(ss => ss.DayName == dayName1).ToList();
        return apiresilt;
     }

这里dayName1返回Mon而我的db有值星期一。

2 个答案:

答案 0 :(得分:2)

.ToString("Format-String")可用于所需格式的显示日期;

DateTime dt = DateTime.Now; will be the current date APR/01/2016
string str = dt.ToString("dddd"); // this will be Friday for 04/01/2016

答案 1 :(得分:2)

如果确实要将此string解析为DateTime,则必须将您的GMT 0500 (Pakistan Standard Time)部分用作字符串文字。 DateTime解析方法不支持时区名称和UTC偏移部分没有 TimeSeparator

然后,您可以使用DateTime.ToString方法与dddd specifier基于英语的文化,例如InvariantCulture

var s = "Mon Apr 18 2016 00:00:00 GMT 0500 (Pakistan Standard Time)";
var dt = DateTime.ParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT 0500 (Pakistan Standard Time)'",
                             CultureInfo.InvariantCulture);

Console.WriteLine(dt.ToString("dddd", CultureInfo.InvariantCulture));

顺便说一句,没有日期时间字符串这样的东西。您的数据可以是DateTimestring