我創建了一個獲取Unix時間戳的簡單類。第一次調用它會返回時間戳,但在此之後它總是返回它第一次返回的值,就像它已經被緩存了一樣。Timestamp.UTCNow不是最新的
這是怎麼回事?
using System;
using System.Collections;
public class Timestamp {
public static float now {
get {
return (float)(DateTime.UtcNow.Subtract(new DateTime (1970, 1, 1))).TotalSeconds;
}
}
}
Timestamp.now總是返回相同的值
編輯:
using UnityEngine;
using System;
using System.Collections;
public static float now {
get {
Debug.Log(DateTime.UtcNow); // 1
Debug.Log(DateTime.UtcNow.Subtract (new DateTime (1970, 1, 1))); // 2
float ts = (float)(DateTime.UtcNow.Subtract (new DateTime (1970, 1, 1))).TotalSeconds;
Debug.Log(ts.ToString("F")); // 3
return ts;
}
}
}
1)印刷2016年5月8日下午11時44分57秒在第一次調用,和第5/8/2016 11:45:05 PM在第二個電話,所以它是最新的
2)在第一個電話打印16929.23:44:57.2918073和在第二個電話打印16929.23:45:05.9735794,所以它是最新的
3)總是打印1462751000.00
DateTime.UtcNow方法'Subract'返回一個'TimeSpan',你將它轉換爲'float',這是不正確的。 – t0mm13b
爲什麼你將結果轉換爲「float」? –
@ t0mm13b正在投射'TotalSeconds'屬性的值,其類型爲'double',可以轉換爲'float'。 – hvd