title: What is up with this wierd BSON date saving?
body: <p>I'm currently writing a driver for MongoDB, so I have to dig a little deeper and so I find this:</p>
  
  <p>BSON spec for DateTimeUTC:</p>
  
  <p><code>"\x09" e_name int64</code></p>
  
  <p>BSON spec for int64:</p>
  
  <p><code>"\x12" e_name int64</code></p>
  
  <p>BSON spec for timeStamp (although I know its almost always used internally, its just to show BSON makes use of unsigned integers):</p>
  
  <p><code>"\x11" e_name uint64</code></p>
  
  <p>It seems a bit controversial to me. Why are int64 and utc millis even separated? Does mongoDB use different ways to compare different BSON dateTimeUTCs?</p>
  
  <p>And why is dateTimeUTC NOT a uint64 but a signed integer? millis are always > 0. Is there a reason behind this? Am I missing something?</p>