diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/CapabilityPolling.java b/rcs/presencepolling/src/com/android/service/ims/presence/CapabilityPolling.java
index 0bbbcd1..6dfa651 100644
--- a/rcs/presencepolling/src/com/android/service/ims/presence/CapabilityPolling.java
+++ b/rcs/presencepolling/src/com/android/service/ims/presence/CapabilityPolling.java
@@ -44,7 +44,7 @@
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.text.format.Time;
+import android.text.format.TimeMigrationUtils;
 import android.text.TextUtils;
 import android.content.ComponentName;
 
@@ -664,9 +664,8 @@
             time = System.currentTimeMillis();
         }
 
-        Time tobj = new Time();
-        tobj.set(time);
-        return String.format("%s.%s", tobj.format("%m-%d %H:%M:%S"), time % 1000);
+        String timeString = TimeMigrationUtils.formatMillisWithFixedFormat(time);
+        return String.format("%s.%s", timeString, time % 1000);
     }
 
     private static final int MSG_CHECK_DISCOVERY = 1;
diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/Contacts.java b/rcs/presencepolling/src/com/android/service/ims/presence/Contacts.java
index 04e7266..d5eabaa 100644
--- a/rcs/presencepolling/src/com/android/service/ims/presence/Contacts.java
+++ b/rcs/presencepolling/src/com/android/service/ims/presence/Contacts.java
@@ -30,7 +30,7 @@
 
 import android.net.Uri;
 import android.provider.BaseColumns;
-import android.text.format.Time;
+import android.text.format.TimeMigrationUtils;
 import com.android.ims.internal.EABContract;
 
 import com.android.ims.internal.ContactNumberUtils;
@@ -297,9 +297,8 @@
                 time = System.currentTimeMillis();
             }
 
-            Time tobj = new Time();
-            tobj.set(time);
-            return String.format("%s.%s", tobj.format("%m-%d %H:%M:%S"), time % 1000);
+            String timeString = TimeMigrationUtils.formatMillisWithFixedFormat(time);
+            return String.format("%s.%s", timeString, time % 1000);
         }
 
         private long mId;
diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/EABContactManager.java b/rcs/presencepolling/src/com/android/service/ims/presence/EABContactManager.java
index f97df19..8ba2967 100644
--- a/rcs/presencepolling/src/com/android/service/ims/presence/EABContactManager.java
+++ b/rcs/presencepolling/src/com/android/service/ims/presence/EABContactManager.java
@@ -38,7 +38,7 @@
 import android.database.Cursor;
 import android.database.DatabaseUtils;
 import android.net.Uri;
-import android.text.format.Time;
+import android.text.format.TimeMigrationUtils;
 import android.text.TextUtils;
 
 import com.android.ims.internal.EABContract;
@@ -770,9 +770,8 @@
             time = System.currentTimeMillis();
         }
 
-        Time tobj = new Time();
-        tobj.set(time);
-        return String.format("%s.%s", tobj.format("%m-%d %H:%M:%S"), time % 1000);
+        String timeString = TimeMigrationUtils.formatMillisWithFixedFormat(time);
+        return String.format("%s.%s", timeString, time % 1000);
     }
 
     /**
diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/PollingTask.java b/rcs/presencepolling/src/com/android/service/ims/presence/PollingTask.java
index 55ad09a..6ee1451 100644
--- a/rcs/presencepolling/src/com/android/service/ims/presence/PollingTask.java
+++ b/rcs/presencepolling/src/com/android/service/ims/presence/PollingTask.java
@@ -33,7 +33,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.SystemClock;
-import android.text.format.Time;
+import android.text.format.TimeMigrationUtils;
 
 import com.android.ims.internal.Logger;
 
@@ -213,9 +213,8 @@
             time = System.currentTimeMillis();
         }
 
-        Time tobj = new Time();
-        tobj.set(time);
-        return String.format("%s.%s", tobj.format("%m-%d %H:%M:%S"), time % 1000);
+        String timeString = TimeMigrationUtils.formatMillisWithFixedFormat(time);
+        return String.format("%s.%s", timeString, time % 1000);
     }
 
     public boolean isCompleted() {
