diff --git a/include/ndn-cpp/c/common.h b/include/ndn-cpp/c/common.h
index 89392bc..c1706d5 100644
--- a/include/ndn-cpp/c/common.h
+++ b/include/ndn-cpp/c/common.h
@@ -12,4 +12,22 @@
 // TODO: Is stddef.h portable?
 #include <stddef.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * A time interval represented as the number of milliseconds.
+ */
+typedef double ndn_Milliseconds;
+   
+/**
+ * The calendar time represented as the number of milliseconds since 1/1/1970.
+ */
+typedef double ndn_MillisecondsSince1970;
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif
diff --git a/include/ndn-cpp/common.hpp b/include/ndn-cpp/common.hpp
index f0bd736..1df861b 100644
--- a/include/ndn-cpp/common.hpp
+++ b/include/ndn-cpp/common.hpp
@@ -63,10 +63,17 @@
 #endif
 
 namespace ndn {
+
+/**
+ * A time interval represented as the number of milliseconds.
+ */
+typedef double Milliseconds;
    
-// TODO: Implement Time, used in certificates and DER encoding.
-typedef double Time;  
-  
+/**
+ * The calendar time represented as the number of milliseconds since 1/1/1970.
+ */
+typedef double MillisecondsSince1970;
+
 /**
  * Return the hex representation of the bytes in array.
  * @param array The array of bytes.
diff --git a/include/ndn-cpp/data.hpp b/include/ndn-cpp/data.hpp
index a99e410..1cd00f6 100644
--- a/include/ndn-cpp/data.hpp
+++ b/include/ndn-cpp/data.hpp
@@ -83,7 +83,7 @@
   void 
   set(const struct ndn_MetaInfo& metaInfoStruct);
 
-  double 
+  MillisecondsSince1970 
   getTimestampMilliseconds() const { return timestampMilliseconds_; }
   
   ndn_ContentType 
@@ -96,7 +96,7 @@
   getFinalBlockID() const { return finalBlockID_; }
   
   void 
-  setTimestampMilliseconds(double timestampMilliseconds) { timestampMilliseconds_ = timestampMilliseconds; }
+  setTimestampMilliseconds(MillisecondsSince1970 timestampMilliseconds) { timestampMilliseconds_ = timestampMilliseconds; }
   
   void 
   setType(ndn_ContentType type) { type_ = type; }
@@ -117,7 +117,7 @@
   }
   
 private:
-  double timestampMilliseconds_; /**< milliseconds since 1/1/1970. -1 for none */
+  MillisecondsSince1970 timestampMilliseconds_; /**< milliseconds since 1/1/1970. -1 for none */
   ndn_ContentType type_;         /**< default is ndn_ContentType_DATA. -1 for none */
   int freshnessSeconds_;         /**< -1 for none */
   Name::Component finalBlockID_; /** size 0 for none */
diff --git a/include/ndn-cpp/interest.hpp b/include/ndn-cpp/interest.hpp
index 955d681..f05d575 100644
--- a/include/ndn-cpp/interest.hpp
+++ b/include/ndn-cpp/interest.hpp
@@ -134,7 +134,7 @@
 public:    
   Interest(const Name& name, int minSuffixComponents, int maxSuffixComponents, 
     const PublisherPublicKeyDigest& publisherPublicKeyDigest, const Exclude& exclude, int childSelector, int answerOriginKind, 
-    int scope, double interestLifetimeMilliseconds, const std::vector<uint8_t>& nonce) 
+    int scope, Milliseconds interestLifetimeMilliseconds, const std::vector<uint8_t>& nonce) 
   : name_(name), minSuffixComponents_(minSuffixComponents), maxSuffixComponents_(maxSuffixComponents),
   publisherPublicKeyDigest_(publisherPublicKeyDigest), exclude_(exclude), childSelector_(childSelector), 
   answerOriginKind_(answerOriginKind), scope_(scope), interestLifetimeMilliseconds_(interestLifetimeMilliseconds),
@@ -144,14 +144,14 @@
 
   Interest(const Name& name, int minSuffixComponents, int maxSuffixComponents, 
     const PublisherPublicKeyDigest& publisherPublicKeyDigest, const Exclude& exclude, int childSelector, int answerOriginKind, 
-    int scope, double interestLifetimeMilliseconds) 
+    int scope, Milliseconds interestLifetimeMilliseconds) 
   : name_(name), minSuffixComponents_(minSuffixComponents), maxSuffixComponents_(maxSuffixComponents),
   publisherPublicKeyDigest_(publisherPublicKeyDigest), exclude_(exclude), childSelector_(childSelector), 
   answerOriginKind_(answerOriginKind), scope_(scope), interestLifetimeMilliseconds_(interestLifetimeMilliseconds)
   {
   }
 
-  Interest(const Name& name, double interestLifetimeMilliseconds) 
+  Interest(const Name& name, Milliseconds interestLifetimeMilliseconds) 
   : name_(name)
   {
     construct();
@@ -228,7 +228,7 @@
   int 
   getScope() const { return scope_; }
 
-  double 
+  Milliseconds 
   getInterestLifetimeMilliseconds() const { return interestLifetimeMilliseconds_; }
 
   const Blob& 
@@ -257,7 +257,7 @@
   setScope(int value) { scope_ = value; }
 
   void 
-  setInterestLifetimeMilliseconds(double value) { interestLifetimeMilliseconds_ = value; }
+  setInterestLifetimeMilliseconds(Milliseconds value) { interestLifetimeMilliseconds_ = value; }
 
   void 
   setNonce(const std::vector<uint8_t>& value) { nonce_ = value; }
@@ -282,7 +282,7 @@
   int childSelector_;
   int answerOriginKind_;
   int scope_;
-  double interestLifetimeMilliseconds_;
+  Milliseconds interestLifetimeMilliseconds_;
   Blob nonce_;
 };
   
diff --git a/include/ndn-cpp/node.hpp b/include/ndn-cpp/node.hpp
index 882ecd8..1e4c001 100644
--- a/include/ndn-cpp/node.hpp
+++ b/include/ndn-cpp/node.hpp
@@ -172,11 +172,11 @@
     /**
      * If this interest is timed out, call onTimeout_ (if defined) and return true.
      * @param parent The parent Node for the UpcallInfo.
-     * @param nowMilliseconds The current time in milliseconds from gettimeofday.
+     * @param nowMilliseconds The current time in milliseconds from ndn_getNowMilliseconds.
      * @return true if this interest timed out and the timeout callback was called, otherwise false.
      */
     bool 
-    checkTimeout(Node *parent, double nowMilliseconds);
+    checkTimeout(Node *parent, MillisecondsSince1970 nowMilliseconds);
     
   private:
     ptr_lib::shared_ptr<const Interest> interest_;
@@ -188,7 +188,7 @@
     uint64_t pendingInterestId_;            /**< A unique identifier for this entry so it can be deleted */
     const OnData onData_;
     const OnTimeout onTimeout_;
-    double timeoutTimeMilliseconds_; /**< The time when the interest times out in milliseconds according to gettimeofday, or -1 for no timeout. */
+    MillisecondsSince1970 timeoutTimeMilliseconds_; /**< The time when the interest times out in milliseconds according to ndn_getNowMilliseconds, or -1 for no timeout. */
   };
 
   class RegisteredPrefix {
diff --git a/include/ndn-cpp/security/certificate/certificate.hpp b/include/ndn-cpp/security/certificate/certificate.hpp
index 21745e2..bc6b355 100644
--- a/include/ndn-cpp/security/certificate/certificate.hpp
+++ b/include/ndn-cpp/security/certificate/certificate.hpp
@@ -61,21 +61,21 @@
   addExtension(const CertificateExtension& extension) { extensionList_.push_back(extension); }
 
   void 
-  setNotBefore(const Time& notBefore) { notBefore_ = notBefore; }
+  setNotBefore(const MillisecondsSince1970& notBefore) { notBefore_ = notBefore; }
 
-  Time& 
+  MillisecondsSince1970& 
   getNotBefore() { return notBefore_; }
   
-  const Time& 
+  const MillisecondsSince1970& 
   getNotBefore() const { return notBefore_; }
 
   void
-  setNotAfter(const Time& notAfter) { notAfter_ = notAfter; }
+  setNotAfter(const MillisecondsSince1970& notAfter) { notAfter_ = notAfter; }
 
-  Time& 
+  MillisecondsSince1970& 
   getNotAfter() { return notAfter_; }
 
-  const Time& 
+  const MillisecondsSince1970& 
   getNotAfter() const { return notAfter_; }
 
   void
@@ -113,8 +113,8 @@
 
 protected:
   SubjectDescriptionList subjectDescriptionList_;
-  Time notBefore_;
-  Time notAfter_;
+  MillisecondsSince1970 notBefore_;
+  MillisecondsSince1970 notAfter_;
   PublicKey key_;
   ExtensionList extensionList_;
 };
diff --git a/include/ndn-cpp/security/identity/basic-identity-storage.hpp b/include/ndn-cpp/security/identity/basic-identity-storage.hpp
index ee1a886..d841548 100644
--- a/include/ndn-cpp/security/identity/basic-identity-storage.hpp
+++ b/include/ndn-cpp/security/identity/basic-identity-storage.hpp
@@ -200,7 +200,7 @@
 
   sqlite3 *database_;
 #if 0
-  Time lastUpdated_;
+  MillisecondsSince1970 lastUpdated_;
 #endif
 };
 
diff --git a/include/ndn-cpp/security/identity/identity-manager.hpp b/include/ndn-cpp/security/identity/identity-manager.hpp
index d31e214..1d6df04 100644
--- a/include/ndn-cpp/security/identity/identity-manager.hpp
+++ b/include/ndn-cpp/security/identity/identity-manager.hpp
@@ -106,7 +106,7 @@
    * @return The name of generated identity certificate.
    */
   Name
-  createIdentityCertificate(const Name& keyName, const Name& signerCertificateName, const Time& notBefore, const Time& notAfter);
+  createIdentityCertificate(const Name& keyName, const Name& signerCertificateName, const MillisecondsSince1970& notBefore, const MillisecondsSince1970& notAfter);
 
   /**
    * Create an identity certificate for a public key supplied by the caller.
@@ -119,7 +119,7 @@
    */
   ptr_lib::shared_ptr<IdentityCertificate>
   createIdentityCertificate
-    (const Name& keyName, const PublicKey& publickey, const Name& signerCertificateName, const Time& notBefore, const Time& notAfter); 
+    (const Name& keyName, const PublicKey& publickey, const Name& signerCertificateName, const MillisecondsSince1970& notBefore, const MillisecondsSince1970& notAfter); 
     
   /**
    * Add a certificate into the public key identity storage.
