2012-07-07 119 views
1

我在firefox的places.sqlite中工作,需要使用C#将本地DateTime转换为PRTime。 PRTime是一个64位整数,表示从午夜(00:00:00)1970年1月1日协调世界时(UTC))到日期时间的微秒数。“将日期时间转换为PRTime C#

回答

2

这可以用在这里这个小助手类来实现:

public static class TimeHelper 
    { 
     // PRTime is Int64 count of microseconds from 1970-01-01-00-00-0000 
     static Int64 ToPRTime(DateTime dateTime) 
     { 
      TimeSpan t = (dateTime - new DateTime(1970, 1, 1)); 
      return Convert.ToInt64(t.TotalMilliseconds * 1000); 
     } 

     static DateTime FromPrTime(Int64 prTime) 
     { 
      var someDate = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); 
      var milliSeconds = prTime/1000; 
      return someDate.AddMilliseconds(milliSeconds); 
     } 
    } 
+0

应该是毫秒,不秒。 – 2012-07-07 17:18:51

+0

1秒=(6次10秒)...如果以秒为单位生成的结果是您想要的结果,则应用计算结果! – 2012-07-07 17:20:32

+0

编辑为使用微秒。在我使用UTC时间的示例中添加了对PRTime和FromPRTime – 2012-07-07 17:27:21