簡體   English   中英

從 C# 中的 DateTime 獲取全天名稱

[英]Get full day Name from DateTime in C#

當我從日歷中選擇日期時,我有 js 日歷它調用 C# 服務,該服務將字符串作為參數。 它以 Mon Apr 18 2016 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 而我的數據庫有值 Monday 。

.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

如果您真的想將此string解析為DateTime則必須使用GMT 0500 (Pakistan Standard Time)部分作為字符串文字。 DateTime 解析方法不支持時區名稱和沒有TimeSeparator UTC Offset 部分。

然后,您可以將DateTime.ToString方法與dddd說明符基於英語的文化(如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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM