c#
  • angularjs
  • 2016-09-29 8 views 0 likes 
    0

    私は1つの問題があります異なる文字列の間で日付を検索し、正しい日付形式に変換するにはどうすればよいですか?

    私はフロントエンドにangularjsを使用していますので、ディレクティブに日付ピッカーがあります。 30::代わり17-6-1992の00.000Zを、しかし、ときに私は17-6-1992のように日付を選択して、DBにそれを送信するときに

    <input " + required + " id='" + elementName + "' name='" + elementName + "' ng-model='question.answer.SelectedAnswer' readonly='' ng-click='opened=!opened' type='text' placeholder='Date' datepicker-popup='" + format + "' is-open='opened' min-date='minDate' datepicker-options='dateOptions' close-text='Close' /> 
    

    、それは 2016-06-16T18のようにDBに保存しています私はそれをDBから取得します。私は2016-06-16T18:30:00.000Zとしていますが、同じ入力フィールドに17-6-1992のように表示しています。

    DBでは基本的に前回の日付として保存されますが、UIでは正しいものが表示されます。 なぜこの問題が起こっているのですか?

    コントローラでこの日付をCSV形式でエクスポートしたいとします。結果は2016-06-16T18:30:00.000Zとなります。この代わりにCSVでも、私は上記のUIの中に何が表示されているかを見せたいと思っています。

    CSVファイルの場合、17-6-1992のようになります。日付は必要ありません。

    string answerString = string.Join(",", answers.Where(i => string.IsNullOrWhiteSpace(i.Answer) == false).Select(j => j.Answer).ToArray()); 
    

    これは私がCSVファイルを書き込むために使用しているもので、すべての回答を文字列として捕捉して印刷します。これらの回答にはその日付が含まれているので、回答の中で日付形式のものを探して、それを適切な日付形式に変換する必要があります。

    +0

    dbフィールドをdatetimeではなくdateに変更する –

    +0

    C#で-TimeZoneInfo.ConvertTimeToUtcメソッド(DateTime、TimeZoneInfo)またはその逆を使用する場合、時刻を非UTCに変換できるかどうかを確認してください。 DateTime.ToUniversalTime Method() –

    答えて

    1

    「Z」は、DateTimesのユニークなケースです。リテラル "Z"は、実際にはUTC時間のISO 8601日時標準の一部です。最後に "Z"(ズールー)が追加されると、その時刻はUTCなので、本当にリテラルZは時刻の一部です。これは、実際には書式指定子ではなくリテラルなので、おそらく.NETの日付書式ライブラリにはいくつかの問題が発生します。

    あなたは、単に日付をフィルタリングするために、角に$フィルタを使用することができ、ここでLink

    サンプルコードがある

    Script.js

    var app = angular.module('app', []); 
    app.controller('MyCtrl', function ($scope, $filter) { 
        var jsonvalue = '2016-06-16T18:30:00.000Z'; 
        $scope.time = new Date(jsonvalue); 
        $scope.parsed = $filter('date')($scope.time, "yyyy-MM-dd HH:mm:ss"); 
    }); 
    

    HTML

    <div ng-controller="MyCtrl"> 
        <h1>Actual Parsed Date</h1> 
         <p>{{parsed}}</p> 
        <h1>With Time</h1> 
        <p>{{time | date:'dd-MM-yyyy HH:mm:ss'}}</p> 
        <h1>WithOut Time</h1> 
         <p>{{time | date:'dd-MM-yyyy'}}</p> 
    </div> 
    
    を次のようにしています
    +1

    問題は私がanglejs側で変換したくない、私はそれがファイルの作成のためにC#側で変換されることを望みます。 –

    関連する問題