2016-12-08 21 views
0

TimeJobSubmitted属性は、正しいタイムゾーンで時刻を返すようには表示されません。 Windowsで印刷キューを手動で見ると、ジョブの時刻が正しいことがわかります。 (例:3:30に提出されたジョブ1を表示します)。PrintSystemJobInfo.TimeJobSubmittedは時間が間違っていると報告しますか?

PrintJobInfoCollectionを使用してコード内の印刷ジョブを解析すると、TimeJobSubmittedが正しい値に反して8:30と表示されるため、正しいタイムゾーンを使用していないように見えますウィンドウに表示される実際のプリントキュー。 (右プリンタをクリックして、ウィンドウにプリントキューを参照するには、「印刷は何を参照してください」をクリックします。

ここで私はコード内の印刷キューに目を通す方法です。

  LocalPrintServer server = new LocalPrintServer(); 
      PrintQueue pq = server.GetPrintQueue(printerName); 

      if (pq != null) 
      { 
       pq.Refresh(); 
       PrintJobInfoCollection jobs = pq.GetPrintJobInfoCollection(); 
       foreach (PrintSystemJobInfo job in jobs) 
       { 
        string jobName = job.Name; 
        string jobStatus = job.JobStatus.ToString(); 
        // Why is the next line 5 hours off of the correct time? 
        DateTime timeSubbited = job.TimeJobSubmitted; 
        DateTime currentTime = DateTime.Now;; 
        TimeSpan elapsed = currentTime - timeSubbited; 

        // double minutesPassed = timePassed.TotalMinutes; 

       } 
      } 

どのように私は正しいTimeJobSubmittedを得るのですかC#での印刷ジョブを反復するとき?

答えて

1

を私は日時と協力して以来、それはしばらくしている。私はそれがUTCで報告されたことが知られている必要があります。正しい答えは単純.ToLocalTime()

job.TimeJobSubmitted.ToLocalTime(); 
を呼び出すことです
関連する問題