2017-05-08 3 views
0

私はアプリの領収書で確認するためにAppleサービスに電話しています。以下は電話をかける私のサービスです。inappサーバーの応答日から同等のUTC datetimeを取得する方法は?

try 
     { 
      _url = ConfigurationManager.AppSettings["AppleServerUrl"]; 
      var json = new JObject(
        new JProperty("receipt-data", receiptToken), 
        new JProperty("password", "mySecretKey")).ToString(); 

      ASCIIEncoding ascii = new ASCIIEncoding(); 
      byte[] postBytes = Encoding.UTF8.GetBytes(json); 
      var request = System.Net.HttpWebRequest.Create(_url); 
      request.Method = "POST"; 
      request.ContentType = "application/json"; 
      request.ContentLength = postBytes.Length; 
      using (var stream = request.GetRequestStream()) 
      { 
       stream.Write(postBytes, 0, postBytes.Length); 
       stream.Flush(); 
      } 

      var sendResponse = request.GetResponse(); 
      string sendResponseText = ""; 
      using (var sr = new StreamReader(sendResponse.GetResponseStream())) 
      { 
       sendResponseText = sr.ReadToEnd().Trim(); 
      } 


      var resObj = (JObject)JsonConvert.DeserializeObject(sendResponseText.ToString()); 
      var latestReceipt = resObj["latest_receipt"]; 
      resObj = (JObject)resObj["latest_receipt_info"].LastOrDefault(); 

      var expiryDate = Convert.ToDateTime(resObj["expires_date"]); 
    } 

私はexpiryDate = "2017-05-03 15:08:55 Etc/GMT"を取得しています。

今この日付をdatetime(UTC)&に変換する必要があります。私のデータベースに保存してください。同じことをしようとしている間、私はエラーを取得しています。

文字列が有効なDateTimeとして認識されませんでした。インデックス20から始まる未知の単語があります

グーグルで私は以下のリンク&がリンクに記載されたものを試してみました。

これは私に以下のエラーを投げます。

文字列が有効なDateTimeとして認識されませんでした。

返された日付を同等のUTC Datetimeに変換するにはどうすればよいですか?

ありがとうございました。

答えて

0

"Etc"を削除して文字列値を変換できます。そこより堅牢な方法であるが、これはピンチあなたは間違いなくSystem.DateTimeOffsetまたはNodaTimeのようなもののいずれかを使用しなければならない、と述べた

"2017-05-03 15:08:55 GMT" 

が生成されます

Parse(Regex.Replace("2017-05-03 15:08:55 etc/GMT", "[a-zA-Z]{3}/", "")) 

で働くことがあります。タイムゾーンを意識したデータを処理しているときの日付処理を処理します。

関連する問題