Merge "Fixed localization formatting for picker widgets" into oc-support-26.1-dev
diff --git a/api/26.1.0-SNAPSHOT.txt b/api/26.1.0-SNAPSHOT.txt
index 2de7ede..c0b0862 100644
--- a/api/26.1.0-SNAPSHOT.txt
+++ b/api/26.1.0-SNAPSHOT.txt
@@ -5609,7 +5609,8 @@
     method public final int getPickerItemLayoutId();
     method public final int getPickerItemTextViewId();
     method public int getSelectedColumn();
-    method public final java.lang.CharSequence getSeparator();
+    method public final deprecated java.lang.CharSequence getSeparator();
+    method public final java.util.List<java.lang.CharSequence> getSeparators();
     method public float getVisibleItemCount();
     method public void onColumnValueChanged(int, int);
     method public void removeOnValueChangedListener(android.support.v17.leanback.widget.picker.Picker.PickerValueListener);
@@ -5620,6 +5621,7 @@
     method public final void setPickerItemTextViewId(int);
     method public void setSelectedColumn(int);
     method public final void setSeparator(java.lang.CharSequence);
+    method public final void setSeparators(java.util.List<java.lang.CharSequence>);
     method public void setVisibleItemCount(float);
   }
 
diff --git a/v17/leanback/api/26.1.0-SNAPSHOT.txt b/v17/leanback/api/26.1.0-SNAPSHOT.txt
index bc0eecc..fb2aebc 100644
--- a/v17/leanback/api/26.1.0-SNAPSHOT.txt
+++ b/v17/leanback/api/26.1.0-SNAPSHOT.txt
@@ -3154,7 +3154,8 @@
     method public final int getPickerItemLayoutId();
     method public final int getPickerItemTextViewId();
     method public int getSelectedColumn();
-    method public final java.lang.CharSequence getSeparator();
+    method public final deprecated java.lang.CharSequence getSeparator();
+    method public final java.util.List<java.lang.CharSequence> getSeparators();
     method public float getVisibleItemCount();
     method public void onColumnValueChanged(int, int);
     method public void removeOnValueChangedListener(android.support.v17.leanback.widget.picker.Picker.PickerValueListener);
@@ -3165,6 +3166,7 @@
     method public final void setPickerItemTextViewId(int);
     method public void setSelectedColumn(int);
     method public final void setSeparator(java.lang.CharSequence);
+    method public final void setSeparators(java.util.List<java.lang.CharSequence>);
     method public void setVisibleItemCount(float);
   }
 
diff --git a/v17/leanback/res/values-af/strings.xml b/v17/leanback/res/values-af/strings.xml
index 5e5c649..a9ef3e8 100644
--- a/v17/leanback/res/values-af/strings.xml
+++ b/v17/leanback/res/values-af/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Mediakontroles word versteek; druk D-paneel om te wys"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Voltooi"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Gaan voort"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer-foutkode %1$d ekstra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BEGIN HIER"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Volgende"</string>
diff --git a/v17/leanback/res/values-am/strings.xml b/v17/leanback/res/values-am/strings.xml
index 2427364..5ac73a5 100644
--- a/v17/leanback/res/values-am/strings.xml
+++ b/v17/leanback/res/values-am/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"የሚዲያ መቆጣጠሪያዎች ተደብቀዋል። d-pad ን ለማሳየት ይጫኑ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ጨርስ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ቀጥል"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"፦"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"የMediaPlayer ስህተት ኮድ %1$d ተጨማሪ %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ይጀምሩ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ቀጣይ"</string>
diff --git a/v17/leanback/res/values-ar/strings.xml b/v17/leanback/res/values-ar/strings.xml
index 90cd489..11f0d8c 100644
--- a/v17/leanback/res/values-ar/strings.xml
+++ b/v17/leanback/res/values-ar/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"‏تم إخفاء عناصر التحكم في الوسائط، يمكنك الضغط على d-pad لإظهارها"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"إنهاء"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"متابعة"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"‏رمز الخطأ في MediaPlayer %1$d بالإضافة إلى %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"البدء"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"التالية"</string>
diff --git a/v17/leanback/res/values-az/strings.xml b/v17/leanback/res/values-az/strings.xml
index e3fe52b..31d4304 100644
--- a/v17/leanback/res/values-az/strings.xml
+++ b/v17/leanback/res/values-az/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Media idarəetmələri gizlidir, göstərmək üçün d-pad\'i basın"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Bitir"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Davam edin"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Media Pleyer xəta kodu %1$d əlavə %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BAŞLAYIN"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Növbəti"</string>
diff --git a/v17/leanback/res/values-b+sr+Latn/strings.xml b/v17/leanback/res/values-b+sr+Latn/strings.xml
index 4659835..1a002b4 100644
--- a/v17/leanback/res/values-b+sr+Latn/strings.xml
+++ b/v17/leanback/res/values-b+sr+Latn/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kontrole za medije su skrivene, pritisnite kontrole za kretanje da biste ih prikazali"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Dovrši"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Nastavi"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kôd greške MediaPlayer-a %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAPOČNITE"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Dalje"</string>
diff --git a/v17/leanback/res/values-be/strings.xml b/v17/leanback/res/values-be/strings.xml
index 97e05a6..b5860f1 100644
--- a/v17/leanback/res/values-be/strings.xml
+++ b/v17/leanback/res/values-be/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Элементы кіравання мультымедыя схаваны. Каб паказаць іх, націсніце пераключальнік напрамкаў"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Завяршыць"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Далей"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Код памылкі MediaPlayer %1$d дадаткова %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПАЧАЦЬ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далей"</string>
diff --git a/v17/leanback/res/values-bg/strings.xml b/v17/leanback/res/values-bg/strings.xml
index 917519d..d98e8c4 100644
--- a/v17/leanback/res/values-bg/strings.xml
+++ b/v17/leanback/res/values-bg/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Контролите за мултимедия са скрити. Натиснете контролния пад, за да се покажат"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Край"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Напред"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПЪРВИ СТЪПКИ"</string>
diff --git a/v17/leanback/res/values-bn/strings.xml b/v17/leanback/res/values-bn/strings.xml
index d921817..37f0e48 100644
--- a/v17/leanback/res/values-bn/strings.xml
+++ b/v17/leanback/res/values-bn/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"মিডিয়ার নিয়ন্ত্রণগুলি লুকানো আছে, দেখার জন্য ডি-প্যাড টিপুন"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"শেষ করুন"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"চালিয়ে যান"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"শুরু করা যাক"</string>
diff --git a/v17/leanback/res/values-bs/strings.xml b/v17/leanback/res/values-bs/strings.xml
index 12f404e..804d6ca 100644
--- a/v17/leanback/res/values-bs/strings.xml
+++ b/v17/leanback/res/values-bs/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kontrole za medije su skrivene. Pritisnite d-pad da ih prikažete"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Završiti"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Nastaviti"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kôd greške MediaPlayera %1$d dodatno %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAPOČNITE"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Naprijed"</string>
diff --git a/v17/leanback/res/values-ca/strings.xml b/v17/leanback/res/values-ca/strings.xml
index 943a6c3..74c9700 100644
--- a/v17/leanback/res/values-ca/strings.xml
+++ b/v17/leanback/res/values-ca/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"S\'han amagat els controls multimèdia; prem el teclat direccional per mostrar-los"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finalitza"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continua"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Codi d\'error de MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMENÇA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Següent"</string>
diff --git a/v17/leanback/res/values-cs/strings.xml b/v17/leanback/res/values-cs/strings.xml
index 6519e9c..17b4dfc 100644
--- a/v17/leanback/res/values-cs/strings.xml
+++ b/v17/leanback/res/values-cs/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Ovládací prvky médií jsou skryty, zobrazíte je stisknutím křížového ovladače"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Dokončit"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Pokračovat"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kód chyby přehrávače MediaPlayer %1$d, další %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČÍNÁME"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Další"</string>
diff --git a/v17/leanback/res/values-da/strings.xml b/v17/leanback/res/values-da/strings.xml
index 4174eba..3c6843f 100644
--- a/v17/leanback/res/values-da/strings.xml
+++ b/v17/leanback/res/values-da/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Knapperne til afspilning er skjult. Tryk på D-pad\'en for at se dem"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Afslut"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Fortsæt"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM GODT I GANG"</string>
diff --git a/v17/leanback/res/values-de/strings.xml b/v17/leanback/res/values-de/strings.xml
index 7cdd292..ff9a409 100644
--- a/v17/leanback/res/values-de/strings.xml
+++ b/v17/leanback/res/values-de/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Mediensteuerelemente ausgeblendet. Drücke das Steuerkreuz, um die Steuerelemente wieder einzublenden."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Fertigstellen"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Weiter"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer-Fehlercode %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"JETZT STARTEN"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Weiter"</string>
diff --git a/v17/leanback/res/values-el/strings.xml b/v17/leanback/res/values-el/strings.xml
index c0f039f..795a501 100644
--- a/v17/leanback/res/values-el/strings.xml
+++ b/v17/leanback/res/values-el/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Απόκρυψη στοιχείων ελέγχου μέσων, πιέστε το d-pad για εμφάνιση"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Τέλος"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Συνέχεια"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Κωδικός σφάλματος MediaPlayer %1$d επιπλέον %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ΕΝΑΡΞΗ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Επόμενο"</string>
diff --git a/v17/leanback/res/values-en-rAU/strings.xml b/v17/leanback/res/values-en-rAU/strings.xml
index c15bd3b..03dedda 100644
--- a/v17/leanback/res/values-en-rAU/strings.xml
+++ b/v17/leanback/res/values-en-rAU/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Media controls hidden, press d-pad to show"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finish"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continue"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer error code %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
diff --git a/v17/leanback/res/values-en-rGB/strings.xml b/v17/leanback/res/values-en-rGB/strings.xml
index c15bd3b..03dedda 100644
--- a/v17/leanback/res/values-en-rGB/strings.xml
+++ b/v17/leanback/res/values-en-rGB/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Media controls hidden, press d-pad to show"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finish"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continue"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer error code %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
diff --git a/v17/leanback/res/values-en-rIN/strings.xml b/v17/leanback/res/values-en-rIN/strings.xml
index c15bd3b..03dedda 100644
--- a/v17/leanback/res/values-en-rIN/strings.xml
+++ b/v17/leanback/res/values-en-rIN/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Media controls hidden, press d-pad to show"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finish"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continue"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer error code %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
diff --git a/v17/leanback/res/values-es-rUS/strings.xml b/v17/leanback/res/values-es-rUS/strings.xml
index 41fe3f4..cf84f62 100644
--- a/v17/leanback/res/values-es-rUS/strings.xml
+++ b/v17/leanback/res/values-es-rUS/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Los controles de medios están ocultos; presiona el control direccional para mostrarlos"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finalizar"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de error de MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMENZAR"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Siguiente"</string>
diff --git a/v17/leanback/res/values-es/strings.xml b/v17/leanback/res/values-es/strings.xml
index afd9195..bae575f 100644
--- a/v17/leanback/res/values-es/strings.xml
+++ b/v17/leanback/res/values-es/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Controles multimedia ocultos (pulsa la cruceta para mostrarlos)"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finalizar"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de error de MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"EMPEZAR"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Siguiente"</string>
diff --git a/v17/leanback/res/values-et/strings.xml b/v17/leanback/res/values-et/strings.xml
index d87aba3..34a4f0c 100644
--- a/v17/leanback/res/values-et/strings.xml
+++ b/v17/leanback/res/values-et/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Meedia juhtnupud on peidetud, kuvamiseks vajutage DPAD-i"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Lõpeta"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Jätka"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayeri veakood %1$d, lisa %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ALUSTAGE"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Järgmine"</string>
diff --git a/v17/leanback/res/values-eu/strings.xml b/v17/leanback/res/values-eu/strings.xml
index 46140b2..980ac8b 100644
--- a/v17/leanback/res/values-eu/strings.xml
+++ b/v17/leanback/res/values-eu/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Ezkutatuta daude multimedia kontrolatzeko aukerak. Erakusteko, sakatu nabigazio-gurutzea."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Amaitu"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Jarraitu"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer errore-kodea: %1$d (%2$d gehigarria)"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"LEHEN URRATSAK"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Hurrengoa"</string>
diff --git a/v17/leanback/res/values-fa/strings.xml b/v17/leanback/res/values-fa/strings.xml
index b85d1fa..320d819 100644
--- a/v17/leanback/res/values-fa/strings.xml
+++ b/v17/leanback/res/values-fa/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"‏کنترل‌های رسانه پنهان هستند، برای نمایش آن‌ها d-pad (پد کنترل) را فشار دهید"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"پایان"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ادامه"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"شروع به‌ کار"</string>
diff --git a/v17/leanback/res/values-fi/strings.xml b/v17/leanback/res/values-fi/strings.xml
index bc83b9d..863fcd5 100644
--- a/v17/leanback/res/values-fi/strings.xml
+++ b/v17/leanback/res/values-fi/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Mediasäätimet piilotettu, näytä painamalla ohjaimen nuolia."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Valmis"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Jatka"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayerin virhekoodi %1$d ylimääräinen %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ALOITA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seuraava"</string>
diff --git a/v17/leanback/res/values-fr-rCA/strings.xml b/v17/leanback/res/values-fr-rCA/strings.xml
index 300c087..d8ec857 100644
--- a/v17/leanback/res/values-fr-rCA/strings.xml
+++ b/v17/leanback/res/values-fr-rCA/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Les commandes multimédias sont masquées, appuyez sur le pavé directionnel pour les afficher."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Terminer"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuer"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Code d\'erreur MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMMENCER"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Suivant"</string>
diff --git a/v17/leanback/res/values-fr/strings.xml b/v17/leanback/res/values-fr/strings.xml
index 3c83164..d3208a8 100644
--- a/v17/leanback/res/values-fr/strings.xml
+++ b/v17/leanback/res/values-fr/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Les commandes multimédias sont masquées. Appuyez sur le pavé directionnel pour les afficher"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Terminer"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuer"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Code d\'erreur MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMMENCER"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Suivant"</string>
diff --git a/v17/leanback/res/values-gl/strings.xml b/v17/leanback/res/values-gl/strings.xml
index 21830de..6c5cfb5 100644
--- a/v17/leanback/res/values-gl/strings.xml
+++ b/v17/leanback/res/values-gl/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Os controis de recursos multimedia están ocultos. Preme d-pad para mostralos"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finalizar"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de erro de MediaPlayer %1$d %2$d de máis"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"INTRODUCIÓN"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seguinte"</string>
diff --git a/v17/leanback/res/values-gu/strings.xml b/v17/leanback/res/values-gu/strings.xml
index bf94e68..2be274d 100644
--- a/v17/leanback/res/values-gu/strings.xml
+++ b/v17/leanback/res/values-gu/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"મીડિયા નિયંત્રણો છુપાયેલા છે, તે બતાવવા માટે d-પૅડ દબાવો"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"સમાપ્ત કરો"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ચાલુ રાખો"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"પ્રારંભ કરો"</string>
diff --git a/v17/leanback/res/values-hi/strings.xml b/v17/leanback/res/values-hi/strings.xml
index 91ff72a..41b0b11 100644
--- a/v17/leanback/res/values-hi/strings.xml
+++ b/v17/leanback/res/values-hi/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"मीडिया नियंत्रण छिपे हुए हैं, दिखाने के लिए डी-पैड दबाएं"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"समाप्त करें"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"जारी रखें"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer गड़बड़ी कोड %1$d अतिरिक्त %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"प्रारंभ करें"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"अगला"</string>
diff --git a/v17/leanback/res/values-hr/strings.xml b/v17/leanback/res/values-hr/strings.xml
index 6ff3ed8..02e5386 100644
--- a/v17/leanback/res/values-hr/strings.xml
+++ b/v17/leanback/res/values-hr/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Medijske kontrole skrivene su, pritisnite D-pad za prikaz"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Završi"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Nastavi"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kôd pogreške MediaPlayera: %1$d, dodatno %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"POČETAK"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Dalje"</string>
diff --git a/v17/leanback/res/values-hu/strings.xml b/v17/leanback/res/values-hu/strings.xml
index a2b497d..7e67bed 100644
--- a/v17/leanback/res/values-hu/strings.xml
+++ b/v17/leanback/res/values-hu/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"A médiavezérlők el vannak rejtve. Megjelenítésükhöz nyomja le a d-padet."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Befejezés"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Folytatás"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KEZDŐ LÉPÉSEK"</string>
diff --git a/v17/leanback/res/values-hy/strings.xml b/v17/leanback/res/values-hy/strings.xml
index dfaed6e..e71bc52 100644
--- a/v17/leanback/res/values-hy/strings.xml
+++ b/v17/leanback/res/values-hy/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Մեդիայի կառավարման տարրերը թաքցված են։ Ցուցադրելու համար սեղմեք D-pad-ը"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Վերջ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Շարունակել"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Մեդիա նվագարկչի սխալի կոդ %1$d լրացուցիչ %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ՍԿՍԵԼ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Հաջորդը"</string>
diff --git a/v17/leanback/res/values-in/strings.xml b/v17/leanback/res/values-in/strings.xml
index 89ca9d0..c5b0568 100644
--- a/v17/leanback/res/values-in/strings.xml
+++ b/v17/leanback/res/values-in/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kontrol media disembunyikan, tekan d-pad untuk menampilkannya"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Selesai"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Lanjutkan"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kode error MediaPlayer %1$d ekstra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"MULAI"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Berikutnya"</string>
diff --git a/v17/leanback/res/values-is/strings.xml b/v17/leanback/res/values-is/strings.xml
index 3d49bda..afd1709 100644
--- a/v17/leanback/res/values-is/strings.xml
+++ b/v17/leanback/res/values-is/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Spilunarstýringar faldar, ýttu á stefnuhnappa til að sýna þær"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Ljúka"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Halda áfram"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Villukóði MediaPlayer %1$d aukalegt %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"HEFJAST HANDA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Áfram"</string>
diff --git a/v17/leanback/res/values-it/strings.xml b/v17/leanback/res/values-it/strings.xml
index 3eab975..f08671b 100644
--- a/v17/leanback/res/values-it/strings.xml
+++ b/v17/leanback/res/values-it/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Controlli multimediali nascosti, premi il d-pad per visualizzarli"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Fine"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continua"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Codice di errore MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"INIZIA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Avanti"</string>
diff --git a/v17/leanback/res/values-iw/strings.xml b/v17/leanback/res/values-iw/strings.xml
index a3ea4b9..8431583 100644
--- a/v17/leanback/res/values-iw/strings.xml
+++ b/v17/leanback/res/values-iw/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"‏פקדי המדיה מוסתרים. הקש על ה-d-pad כדי להציג אותם"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"סיום"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"המשך"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"התחל"</string>
diff --git a/v17/leanback/res/values-ja/strings.xml b/v17/leanback/res/values-ja/strings.xml
index 8d5a41d..613b7a7 100644
--- a/v17/leanback/res/values-ja/strings.xml
+++ b/v17/leanback/res/values-ja/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"メディア コントロールは非表示になっています。表示するには D-pad を押してください"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"完了"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"続行"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer エラーコード: %1$d、追加: %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"使ってみる"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"次へ"</string>
diff --git a/v17/leanback/res/values-ka/strings.xml b/v17/leanback/res/values-ka/strings.xml
index ef148b0..0913a1d 100644
--- a/v17/leanback/res/values-ka/strings.xml
+++ b/v17/leanback/res/values-ka/strings.xml
@@ -58,8 +58,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"მედიის მართვის საშუალებები დამალულია, გამოსაჩენად დააჭირეთ D-pad-ს"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"დასრულება"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"გაგრძელება"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"დაწყება"</string>
diff --git a/v17/leanback/res/values-kk/strings.xml b/v17/leanback/res/values-kk/strings.xml
index 36902f5..22c67b2 100644
--- a/v17/leanback/res/values-kk/strings.xml
+++ b/v17/leanback/res/values-kk/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Мультимедияны басқару элементтері жасырын, оларды көрсету үшін d-тақтасын басыңыз"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Аяқтау"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Жалғастыру"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer қате коды %1$d, қосымша %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ІСКЕ КІРІСУ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Келесі"</string>
diff --git a/v17/leanback/res/values-km/strings.xml b/v17/leanback/res/values-km/strings.xml
index c2dd333..4c3d61c 100644
--- a/v17/leanback/res/values-km/strings.xml
+++ b/v17/leanback/res/values-km/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"ការ​គ្រប់គ្រង​មេឌៀ​ត្រូវ​បាន​លាក់ សូមចុច d-pad ដើម្បី​បង្ហាញ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"បញ្ចប់"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"បន្ត"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"៖"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ចាប់ផ្ដើម"</string>
diff --git a/v17/leanback/res/values-kn/strings.xml b/v17/leanback/res/values-kn/strings.xml
index f797a9e..7132cef 100644
--- a/v17/leanback/res/values-kn/strings.xml
+++ b/v17/leanback/res/values-kn/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"ಮಾಧ್ಯಮ ನಿಯಂತ್ರಣಗಳನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ, ತೋರಿಸಲು d-pad ಒತ್ತಿರಿ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ಪೂರ್ಣಗೊಳಿಸು"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ಮುಂದುವರಿಸು"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ಪ್ರಾರಂಭಿಸಿ"</string>
diff --git a/v17/leanback/res/values-ko/strings.xml b/v17/leanback/res/values-ko/strings.xml
index b418937..f6e5136 100644
--- a/v17/leanback/res/values-ko/strings.xml
+++ b/v17/leanback/res/values-ko/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"미디어 컨트롤이 숨겨져 있습니다. 표시하려면 D-Pad를 누르세요."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"완료"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"계속"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"시작하기"</string>
diff --git a/v17/leanback/res/values-ky/strings.xml b/v17/leanback/res/values-ky/strings.xml
index 3c52130..f24a0a6 100644
--- a/v17/leanback/res/values-ky/strings.xml
+++ b/v17/leanback/res/values-ky/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Медиа файлды башкаруу жашырылган, көрүү үчүн d-pad көзөмөлдөө каражатын басыңыз"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Бүтүрүү"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Улантуу"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"БАШТАДЫК"</string>
diff --git a/v17/leanback/res/values-lo/strings.xml b/v17/leanback/res/values-lo/strings.xml
index b4f4844..92b7c90 100644
--- a/v17/leanback/res/values-lo/strings.xml
+++ b/v17/leanback/res/values-lo/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"ເຊື່ອງຕົວຄວບຄຸມມີເດຍແລ້ວ, ກົດປຸ່ມທິດທາງເພື່ອສະແດງ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ສໍາເລັດ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"​ສືບ​ຕໍ່"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ເລີ່ມຕົ້ນນຳໃຊ້"</string>
diff --git a/v17/leanback/res/values-lt/strings.xml b/v17/leanback/res/values-lt/strings.xml
index 61692d5..0f6bfce 100644
--- a/v17/leanback/res/values-lt/strings.xml
+++ b/v17/leanback/res/values-lt/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Medijos valdikliai paslėpti. Paspauskite krypčių valdiklius, kad rodytumėte"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Baigti"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Tęsti"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRADĖTI"</string>
diff --git a/v17/leanback/res/values-lv/strings.xml b/v17/leanback/res/values-lv/strings.xml
index b1e36dd..2b17bab 100644
--- a/v17/leanback/res/values-lv/strings.xml
+++ b/v17/leanback/res/values-lv/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Multivides vadīklas ir paslēptas. Nospiediet virzienu tastatūru, lai tās tiktu parādītas."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Pabeigt"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Turpināt"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"SĀKT DARBU"</string>
diff --git a/v17/leanback/res/values-mk/strings.xml b/v17/leanback/res/values-mk/strings.xml
index d694167..5284f64 100644
--- a/v17/leanback/res/values-mk/strings.xml
+++ b/v17/leanback/res/values-mk/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Контролите за аудио-визуелните медиуми се скриени, притиснете на подлогата за насока за да ги прикажете"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Заврши"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Продолжи"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Код за грешка на MediaPlayer %1$d дополнително %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЗАПОЧНИ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Следно"</string>
diff --git a/v17/leanback/res/values-ml/strings.xml b/v17/leanback/res/values-ml/strings.xml
index 03dc391..012bf44 100644
--- a/v17/leanback/res/values-ml/strings.xml
+++ b/v17/leanback/res/values-ml/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"മീഡിയ നിയന്ത്രണങ്ങൾ ‌മറച്ചിരിക്കുന്നു, കാണിക്കുന്നതിന് ഡി-‌പാഡ് അമർത്തുക"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"പൂര്‍ത്തിയാക്കുക"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"തുടരുക"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ആരംഭിക്കുക"</string>
diff --git a/v17/leanback/res/values-mn/strings.xml b/v17/leanback/res/values-mn/strings.xml
index 3369c01..5cd8f4d 100644
--- a/v17/leanback/res/values-mn/strings.xml
+++ b/v17/leanback/res/values-mn/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Медиа удирдлага нуугдсан байна, харуулахын тулд d-pad-г дарна уу"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Дуусгах"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Үргэлжлүүлэх"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЭХЭЛЦГЭЭЕ"</string>
diff --git a/v17/leanback/res/values-mr/strings.xml b/v17/leanback/res/values-mr/strings.xml
index 948b536..ccadd10 100644
--- a/v17/leanback/res/values-mr/strings.xml
+++ b/v17/leanback/res/values-mr/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"मीडिया नियंत्रणे लपलेली आहेत, दर्शवण्‍यासाठी d-pad दाबा"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"समाप्त"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"सुरू ठेवा"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"प्रारंभ करा"</string>
diff --git a/v17/leanback/res/values-ms/strings.xml b/v17/leanback/res/values-ms/strings.xml
index dcfa76b..5a66aac 100644
--- a/v17/leanback/res/values-ms/strings.xml
+++ b/v17/leanback/res/values-ms/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kawalan media disembunyikan, tekan d-pad untuk menunjukkan"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Selesai"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Teruskan"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"MULAKAN"</string>
diff --git a/v17/leanback/res/values-my/strings.xml b/v17/leanback/res/values-my/strings.xml
index 8a4068f..563ee04 100644
--- a/v17/leanback/res/values-my/strings.xml
+++ b/v17/leanback/res/values-my/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"မီဒီယာခလုတ်များကို ဝှက်ထားပါသည်။ ပြရန် d-pad ကို နှိပ်ပါ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ပြီးပြီ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ဆက်လုပ်ရန်"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"−"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer မှားယွင်းမှုကုဒ် %1$d နှင့် အပို %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"စတင်ပါ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ရှေ့သို့"</string>
diff --git a/v17/leanback/res/values-nb/strings.xml b/v17/leanback/res/values-nb/strings.xml
index 1e924a8..bdcd016 100644
--- a/v17/leanback/res/values-nb/strings.xml
+++ b/v17/leanback/res/values-nb/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Mediekontrollene er skjult – trykk på styrepilene for å vise dem"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Fullfør"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Fortsett"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer-feilkode %1$d ekstra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM I GANG"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Neste"</string>
diff --git a/v17/leanback/res/values-ne/strings.xml b/v17/leanback/res/values-ne/strings.xml
index 5c58907..1dd2da6 100644
--- a/v17/leanback/res/values-ne/strings.xml
+++ b/v17/leanback/res/values-ne/strings.xml
@@ -56,8 +56,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"मिडियाका नियन्त्रणहरू लुकेका छन्, देखाउनका लागि d-pad लाई थिच्नुहोस्"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"समाप्त गर्नुहोस्"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"जारी राख्नुहोस्"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"सुरु गरौँ"</string>
diff --git a/v17/leanback/res/values-nl/strings.xml b/v17/leanback/res/values-nl/strings.xml
index 69947ce..c8bc8c8 100644
--- a/v17/leanback/res/values-nl/strings.xml
+++ b/v17/leanback/res/values-nl/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Opties voor mediabediening verborgen. Druk op de D-pad om ze weer te geven."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Voltooien"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Doorgaan"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"-"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"AAN DE SLAG"</string>
diff --git a/v17/leanback/res/values-pa/strings.xml b/v17/leanback/res/values-pa/strings.xml
index b423a73..404bf3b 100644
--- a/v17/leanback/res/values-pa/strings.xml
+++ b/v17/leanback/res/values-pa/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"ਮੀਡੀਆ ਕੰਟਰੋਲ ਲੁਕੇ ਹੋਏ ਹਨ, ਵਿਖਾਉਣ ਲਈ ਡੀ-ਪੈਡ ਦਬਾਓ"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ਖ਼ਤਮ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ਜਾਰੀ ਰੱਖੋ"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ਸ਼ੁਰੂਆਤ ਕਰੋ"</string>
diff --git a/v17/leanback/res/values-pl/strings.xml b/v17/leanback/res/values-pl/strings.xml
index d1c7988..b986598 100644
--- a/v17/leanback/res/values-pl/strings.xml
+++ b/v17/leanback/res/values-pl/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Elementy sterujące multimediami są ukryte. Naciśnij pad kierunkowy, by je wyświetlić"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Zakończ"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Dalej"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ROZPOCZNIJ"</string>
diff --git a/v17/leanback/res/values-pt-rBR/strings.xml b/v17/leanback/res/values-pt-rBR/strings.xml
index 1076b87..c5f238e 100644
--- a/v17/leanback/res/values-pt-rBR/strings.xml
+++ b/v17/leanback/res/values-pt-rBR/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Os controles de mídia estão ocultos. Pressione o botão direcional para exibi-los"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Concluir"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de erro do MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRIMEIROS PASSOS"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Próximo"</string>
diff --git a/v17/leanback/res/values-pt-rPT/strings.xml b/v17/leanback/res/values-pt-rPT/strings.xml
index 1191a50..41ea488 100644
--- a/v17/leanback/res/values-pt-rPT/strings.xml
+++ b/v17/leanback/res/values-pt-rPT/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Controlos de multimédia ocultados, prima o teclado direcional para mostrar"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Concluir"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de erro do MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"INICIAR"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seguinte"</string>
diff --git a/v17/leanback/res/values-pt/strings.xml b/v17/leanback/res/values-pt/strings.xml
index 1076b87..c5f238e 100644
--- a/v17/leanback/res/values-pt/strings.xml
+++ b/v17/leanback/res/values-pt/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Os controles de mídia estão ocultos. Pressione o botão direcional para exibi-los"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Concluir"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuar"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Código de erro do MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRIMEIROS PASSOS"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Próximo"</string>
diff --git a/v17/leanback/res/values-ro/strings.xml b/v17/leanback/res/values-ro/strings.xml
index a362541..325632e 100644
--- a/v17/leanback/res/values-ro/strings.xml
+++ b/v17/leanback/res/values-ro/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Comenzile media sunt ascunse. Apăsați pe butonul direcțional pentru a le afișa."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Finalizați"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Continuați"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Cod de eroare MediaPlayer %1$d suplimentar %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ÎNCEPEȚI"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Înainte"</string>
diff --git a/v17/leanback/res/values-ru/strings.xml b/v17/leanback/res/values-ru/strings.xml
index 8d045cf..8631587 100644
--- a/v17/leanback/res/values-ru/strings.xml
+++ b/v17/leanback/res/values-ru/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Элементы управления скрыты. Нажмите D-pad, чтобы показать их."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Готово"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Далее"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Код ошибки медиапроигрывателя: %1$d (дополнительный: %2$d)"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"НАЧАТЬ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далее"</string>
diff --git a/v17/leanback/res/values-si/strings.xml b/v17/leanback/res/values-si/strings.xml
index 238c105..b92e6ec 100644
--- a/v17/leanback/res/values-si/strings.xml
+++ b/v17/leanback/res/values-si/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"මාධ්‍ය පාලක සඟවා ඇත, පෙන්වීමට d-pad ඔබන්න"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"අවසානය"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"දිගටම කර ගෙන යන්න"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ආරම්භ කරන්න"</string>
diff --git a/v17/leanback/res/values-sk/strings.xml b/v17/leanback/res/values-sk/strings.xml
index bd68c14..731d62b 100644
--- a/v17/leanback/res/values-sk/strings.xml
+++ b/v17/leanback/res/values-sk/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Ovládacie prvky médií sú skryté, zobrazíte ich stlačením krížového ovládača"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Dokončiť"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Pokračovať"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kód chyby MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČÍNAME"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Ďalej"</string>
diff --git a/v17/leanback/res/values-sl/strings.xml b/v17/leanback/res/values-sl/strings.xml
index 30c1f11..2fd75f7 100644
--- a/v17/leanback/res/values-sl/strings.xml
+++ b/v17/leanback/res/values-sl/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kontrolniki predstavnosti so skriti, za prikaz pritisnite smerni gumb"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Dokončaj"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Naprej"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČNITE"</string>
diff --git a/v17/leanback/res/values-sq/strings.xml b/v17/leanback/res/values-sq/strings.xml
index 4c6aa99..c34f5ba 100644
--- a/v17/leanback/res/values-sq/strings.xml
+++ b/v17/leanback/res/values-sq/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Kontrollet e medias të fshehura, shtyp bllokun e drejtimit për t\'i shfaqur"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Përfundo"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Vazhdo"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Kodi i gabimit i MediaPlayer %1$d shtesa %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"FILLO"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Përpara"</string>
diff --git a/v17/leanback/res/values-sr/strings.xml b/v17/leanback/res/values-sr/strings.xml
index e22d127..705aafe 100644
--- a/v17/leanback/res/values-sr/strings.xml
+++ b/v17/leanback/res/values-sr/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Контроле за медије су скривене, притисните контроле за кретање да бисте их приказали"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Доврши"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Настави"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Кôд грешке MediaPlayer-а %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЗАПОЧНИТЕ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Даље"</string>
diff --git a/v17/leanback/res/values-sv/strings.xml b/v17/leanback/res/values-sv/strings.xml
index 80a9050..d528d53 100644
--- a/v17/leanback/res/values-sv/strings.xml
+++ b/v17/leanback/res/values-sv/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Mediakontrollerna är dolda och visas om du trycker på styrkorset"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Slutför"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Fortsätt"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Felkod för MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM IGÅNG"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Nästa"</string>
diff --git a/v17/leanback/res/values-sw/strings.xml b/v17/leanback/res/values-sw/strings.xml
index c586455..19fbc54 100644
--- a/v17/leanback/res/values-sw/strings.xml
+++ b/v17/leanback/res/values-sw/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Imeficha udhibiti wa maudhui, bonyeza d-pad ili uuonyeshe"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Kamilisha"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Endelea"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Msimbo wa hitilafu wa Kichezaji Maudhui %1$d %2$d zaidi"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ANZA KUTUMIA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Inayofuata"</string>
diff --git a/v17/leanback/res/values-ta/strings.xml b/v17/leanback/res/values-ta/strings.xml
index d7cc8ed..ca53421 100644
--- a/v17/leanback/res/values-ta/strings.xml
+++ b/v17/leanback/res/values-ta/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"மீடியா கட்டுப்பாடுகள் மறைக்கப்பட்டுள்ளன. கட்டுப்பாடுகளைக் காட்ட, டிபேடை அழுத்தவும்"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"முடி"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"தொடர்க"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer பிழைக் குறியீடு: %1$d கூடுதல் %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"தொடங்குக"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"அடுத்து"</string>
diff --git a/v17/leanback/res/values-te/strings.xml b/v17/leanback/res/values-te/strings.xml
index 2d82651..d0ab476 100644
--- a/v17/leanback/res/values-te/strings.xml
+++ b/v17/leanback/res/values-te/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"మీడియా నియంత్రణలు దాచబడ్డాయి, చూపించడానికి d-ప్యాడ్ నొక్కండి"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"ముగించు"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"కొనసాగించు"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ప్రారంభించు"</string>
diff --git a/v17/leanback/res/values-th/strings.xml b/v17/leanback/res/values-th/strings.xml
index 1e74c69..2ab6b50 100644
--- a/v17/leanback/res/values-th/strings.xml
+++ b/v17/leanback/res/values-th/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"ซ่อนการควบคุมสื่ออยู่ กด d-pad เพื่อแสดง"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"เสร็จสิ้น"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"ต่อไป"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"เริ่มต้นใช้งาน"</string>
diff --git a/v17/leanback/res/values-tl/strings.xml b/v17/leanback/res/values-tl/strings.xml
index ac14e41..735e7ec 100644
--- a/v17/leanback/res/values-tl/strings.xml
+++ b/v17/leanback/res/values-tl/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Nakatago ang mga kontrol ng media, pindutin ang d-pad upang ipakita"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Tapusin"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Magpatuloy"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"MAGSIMULA"</string>
diff --git a/v17/leanback/res/values-tr/strings.xml b/v17/leanback/res/values-tr/strings.xml
index c29b7f8..f04c2b1 100644
--- a/v17/leanback/res/values-tr/strings.xml
+++ b/v17/leanback/res/values-tr/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Medya denetimleri gizli durumda. Görüntülemek için d-pad\'e basın."</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Son"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Devam"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BAŞLA"</string>
diff --git a/v17/leanback/res/values-uk/strings.xml b/v17/leanback/res/values-uk/strings.xml
index 1829560..12a9ebf 100644
--- a/v17/leanback/res/values-uk/strings.xml
+++ b/v17/leanback/res/values-uk/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Елементи керування медіа сховано. Натисніть цифрову панель, щоб показати їх"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Закінчити"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Продовжити"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Код помилки MediaPlayer: %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПОЧАТИ"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далі"</string>
diff --git a/v17/leanback/res/values-ur/strings.xml b/v17/leanback/res/values-ur/strings.xml
index 0978c85..a5343a2 100644
--- a/v17/leanback/res/values-ur/strings.xml
+++ b/v17/leanback/res/values-ur/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"‏میڈیا کنٹرولز مخفی ہیں، شو کرنے کیلئے d-pad دبائیں"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"مکمل کریں"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"جاری رکھیں"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"شروع کریں"</string>
diff --git a/v17/leanback/res/values-uz/strings.xml b/v17/leanback/res/values-uz/strings.xml
index 915b0b4..f09f78f 100644
--- a/v17/leanback/res/values-uz/strings.xml
+++ b/v17/leanback/res/values-uz/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Boshqaruv elementlari berkitilgan, ochish uchun D-pad tugmasini bosing"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Tugatish"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Davom etish"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"MediaPlayer xatosi kodi: %1$d, %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BOSHLADIK"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Keyingisi"</string>
diff --git a/v17/leanback/res/values-vi/strings.xml b/v17/leanback/res/values-vi/strings.xml
index db9421b..fb8c229 100644
--- a/v17/leanback/res/values-vi/strings.xml
+++ b/v17/leanback/res/values-vi/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Điều khiển phương tiện bị ẩn, nhấn d-pad để hiển thị"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Hoàn tất"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Tiếp tục"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BẮT ĐẦU"</string>
diff --git a/v17/leanback/res/values-zh-rCN/strings.xml b/v17/leanback/res/values-zh-rCN/strings.xml
index 63fd948..1990d40 100644
--- a/v17/leanback/res/values-zh-rCN/strings.xml
+++ b/v17/leanback/res/values-zh-rCN/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"媒体控件已隐藏,按 D-pad 即可显示"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"完成"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"继续"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"开始使用"</string>
diff --git a/v17/leanback/res/values-zh-rHK/strings.xml b/v17/leanback/res/values-zh-rHK/strings.xml
index b7a4a2e..00df362 100644
--- a/v17/leanback/res/values-zh-rHK/strings.xml
+++ b/v17/leanback/res/values-zh-rHK/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"畫面已隱藏媒體控制項,按十字鍵即可顯示"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"完成"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"繼續"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"開始使用"</string>
diff --git a/v17/leanback/res/values-zh-rTW/strings.xml b/v17/leanback/res/values-zh-rTW/strings.xml
index 8d0e1d9..421d0ff 100644
--- a/v17/leanback/res/values-zh-rTW/strings.xml
+++ b/v17/leanback/res/values-zh-rTW/strings.xml
@@ -54,8 +54,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"媒體控制項已隱藏,按下 D-Pad 即可顯示"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"完成"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"繼續"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <!-- no translation found for lb_media_player_error (3650250994187305396) -->
     <skip />
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"開始使用"</string>
diff --git a/v17/leanback/res/values-zu/strings.xml b/v17/leanback/res/values-zu/strings.xml
index 6812abd..06f5641 100644
--- a/v17/leanback/res/values-zu/strings.xml
+++ b/v17/leanback/res/values-zu/strings.xml
@@ -53,8 +53,6 @@
     <string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Izilawuli zemidiya zifihliwe, cindezela ku-d-pad ukuze uzibonise"</string>
     <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Qeda"</string>
     <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Qhubeka"</string>
-    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
-    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_media_player_error" msgid="3650250994187305396">"Ikhodi yephutha le-MediaPlayer %1$d extra %2$d"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"QALISA"</string>
     <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Okulandelayo"</string>
diff --git a/v17/leanback/res/values/strings.xml b/v17/leanback/res/values/strings.xml
index aef086a..1d6c417 100644
--- a/v17/leanback/res/values/strings.xml
+++ b/v17/leanback/res/values/strings.xml
@@ -91,11 +91,6 @@
     <!-- Title of standard Continue action for GuidedStepFragment -->
     <string name="lb_guidedaction_continue_title">Continue</string>
 
-    <!-- Separator for date picker [CHAR LIMIT=2] -->
-    <string name="lb_date_separator">/</string>
-    <!-- Separator for time picker [CHAR LIMIT=2] -->
-    <string name="lb_time_separator">:</string>
-
     <!-- Error string for MediaPlayer -->
     <string name="lb_media_player_error">MediaPlayer error code %1$d extra %2$d</string>
 
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
index 7725bf3..2744dec 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
@@ -29,6 +29,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
 
@@ -74,7 +75,6 @@
         super(context, attrs, defStyleAttr);
 
         updateCurrentLocale();
-        setSeparator(mConstant.dateSeparator);
 
         final TypedArray attributesArray = context.obtainStyledAttributes(attrs,
                 R.styleable.lbDatePicker);
@@ -120,6 +120,98 @@
     }
 
     /**
+     * Returns the best localized representation of the date for the given date format and the
+     * current locale.
+     *
+     * @param datePickerFormat The date format skeleton (e.g. "dMy") used to gather the
+     *                         appropriate representation of the date in the current locale.
+     *
+     * @return The best localized representation of the date for the given date format
+     */
+    String getBestYearMonthDayPattern(String datePickerFormat) {
+        final String yearPattern;
+        if (PickerUtility.SUPPORTS_BEST_DATE_TIME_PATTERN) {
+            yearPattern = android.text.format.DateFormat.getBestDateTimePattern(mConstant.locale,
+                    datePickerFormat);
+        } else {
+            final java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(
+                    getContext());
+            if (dateFormat instanceof SimpleDateFormat) {
+                yearPattern = ((SimpleDateFormat) dateFormat).toLocalizedPattern();
+            } else {
+                yearPattern = DATE_FORMAT;
+            }
+        }
+        return TextUtils.isEmpty(yearPattern) ? DATE_FORMAT : yearPattern;
+    }
+
+    /**
+     * Extracts the separators used to separate date fields (including before the first and after
+     * the last date field). The separators can vary based on the individual locale date format,
+     * defined in the Unicode CLDR and cannot be supposed to be "/".
+     *
+     * See http://unicode.org/cldr/trac/browser/trunk/common/main
+     *
+     * For example, for Croatian in dMy format, the best localized representation is "d. M. y". This
+     * method returns {"", ".", ".", "."}, where the first separator indicates nothing needs to be
+     * displayed to the left of the day field, "." needs to be displayed tos the right of the day
+     * field, and so forth.
+     *
+     * @return The ArrayList of separators to populate between the actual date fields in the
+     * DatePicker.
+     */
+    List<CharSequence> extractSeparators() {
+        // Obtain the time format string per the current locale (e.g. h:mm a)
+        String hmaPattern = getBestYearMonthDayPattern(mDatePickerFormat);
+
+        List<CharSequence> separators = new ArrayList<>();
+        StringBuilder sb = new StringBuilder();
+        char lastChar = '\0';
+        // See http://www.unicode.org/reports/tr35/tr35-dates.html for date formats
+        final char[] dateFormats = {'Y', 'y', 'M', 'm', 'D', 'd'};
+        boolean processingQuote = false;
+        for (int i = 0; i < hmaPattern.length(); i++) {
+            char c = hmaPattern.charAt(i);
+            if (c == ' ') {
+                continue;
+            }
+            if (c == '\'') {
+                if (!processingQuote) {
+                    sb.setLength(0);
+                    processingQuote = true;
+                } else {
+                    processingQuote = false;
+                }
+                continue;
+            }
+            if (processingQuote) {
+                sb.append(c);
+            } else {
+                if (isAnyOf(c, dateFormats)) {
+                    if (c != lastChar) {
+                        separators.add(sb.toString());
+                        sb.setLength(0);
+                    }
+                } else {
+                    sb.append(c);
+                }
+            }
+            lastChar = c;
+        }
+        separators.add(sb.toString());
+        return separators;
+    }
+
+    private static boolean isAnyOf(char c, char[] any) {
+        for (int i = 0; i < any.length; i++) {
+            if (c == any[i]) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
      * Changes format of showing dates.  For example "YMD".
      * @param datePickerFormat Format of showing dates.
      */
@@ -128,16 +220,22 @@
             datePickerFormat = new String(
                     android.text.format.DateFormat.getDateFormatOrder(getContext()));
         }
-        datePickerFormat = datePickerFormat.toUpperCase();
         if (TextUtils.equals(mDatePickerFormat, datePickerFormat)) {
             return;
         }
         mDatePickerFormat = datePickerFormat;
+        List<CharSequence> separators = extractSeparators();
+        if (separators.size() != (datePickerFormat.length() + 1)) {
+            throw new IllegalStateException("Separators size: " + separators.size() + " must equal"
+                    + " the size of datePickerFormat: " + datePickerFormat.length() + " + 1");
+        }
+        setSeparators(separators);
         mYearColumn = mMonthColumn = mDayColumn = null;
         mColYearIndex = mColDayIndex = mColMonthIndex = -1;
+        String dateFieldsPattern = datePickerFormat.toUpperCase();
         ArrayList<PickerColumn> columns = new ArrayList<PickerColumn>(3);
-        for (int i = 0; i < datePickerFormat.length(); i++) {
-            switch (datePickerFormat.charAt(i)) {
+        for (int i = 0; i < dateFieldsPattern.length(); i++) {
+            switch (dateFieldsPattern.charAt(i)) {
             case 'Y':
                 if (mYearColumn != null) {
                     throw new IllegalArgumentException("datePicker format error");
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
index 28d7aeb..486e877 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
@@ -20,6 +20,7 @@
 import android.support.v17.leanback.widget.OnChildViewHolderSelectedListener;
 import android.support.v17.leanback.widget.VerticalGridView;
 import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.TypedValue;
 import android.view.KeyEvent;
@@ -33,6 +34,7 @@
 import android.widget.TextView;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -74,23 +76,53 @@
     private float mVisibleItems = 1;
     private int mSelectedColumn = 0;
 
-    private CharSequence mSeparator;
+    private List<CharSequence> mSeparators = new ArrayList<>();
     private int mPickerItemLayoutId = R.layout.lb_picker_item;
     private int mPickerItemTextViewId = 0;
 
     /**
      * Gets separator string between columns.
+     *
+     * @return The separator that will be populated between all the Picker columns.
+     * @deprecated Use {@link #getSeparators()}
      */
     public final CharSequence getSeparator() {
-        return mSeparator;
+        return mSeparators.get(0);
     }
 
     /**
      * Sets separator String between Picker columns.
+     *
      * @param separator Separator String between Picker columns.
      */
     public final void setSeparator(CharSequence separator) {
-        mSeparator = separator;
+        setSeparators(Arrays.asList(separator));
+    }
+
+    /**
+     * Returns the list of separators that will be populated between the picker column fields.
+     *
+     * @return The list of separators populated between the picker column fields.
+     */
+    public final List<CharSequence> getSeparators() {
+        return mSeparators;
+    }
+
+    /**
+     * Sets the list of separators that will be populated between the Picker columns. The
+     * number of the separators should be either 1 indicating the same separator used between all
+     * the columns fields (and nothing will be placed before the first and after the last column),
+     * or must be one unit larger than the number of columns passed to {@link #setColumns(List)}.
+     * In the latter case, the list of separators corresponds to the positions before the first
+     * column all the way to the position after the last column.
+     * An empty string for a given position indicates no separators needs to be placed for that
+     * position, otherwise a TextView with the given String will be created and placed there.
+     *
+     * @param separators The list of separators to be populated between the Picker columns.
+     */
+    public final void setSeparators(List<CharSequence> separators) {
+        mSeparators.clear();
+        mSeparators.addAll(separators);
     }
 
     /**
@@ -116,6 +148,7 @@
      * layout provided by {@link Picker#getPickerItemLayoutId()} or 0 if the
      * layout provided by {@link Picker#getPickerItemLayoutId()} is a {link
      * TextView}.
+     *
      * @param textViewId View id of TextView inside a Picker item, or 0 if the Picker item is a
      *                   TextView.
      */
@@ -125,9 +158,6 @@
 
     /**
      * Creates a Picker widget.
-     * @param context
-     * @param attrs
-     * @param defStyleAttr
      */
     public Picker(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
@@ -140,7 +170,8 @@
         mVisibleColumnAlpha = 0.5f; //getFloat(R.dimen.picker_item_visible_column_item_alpha);
         mInvisibleColumnAlpha = 0f; //getFloat(R.dimen.picker_item_invisible_column_item_alpha);
 
-        mAlphaAnimDuration = 200; // mContext.getResources().getInteger(R.integer.dialog_animation_duration);
+        mAlphaAnimDuration =
+                200; // mContext.getResources().getInteger(R.integer.dialog_animation_duration);
 
         mDecelerateInterpolator = new DecelerateInterpolator(2.5F);
         mAccelerateInterpolator = new AccelerateInterpolator(2.5F);
@@ -152,7 +183,8 @@
 
     /**
      * Get nth PickerColumn.
-     * @param colIndex  Index of PickerColumn.
+     *
+     * @param colIndex Index of PickerColumn.
      * @return PickerColumn at colIndex or null if {@link #setColumns(List)} is not called yet.
      */
     public PickerColumn getColumnAt(int colIndex) {
@@ -164,6 +196,7 @@
 
     /**
      * Get number of PickerColumns.
+     *
      * @return Number of PickerColumns or 0 if {@link #setColumns(List)} is not called yet.
      */
     public int getColumnsCount() {
@@ -175,9 +208,30 @@
 
     /**
      * Set columns and create Views.
-     * @param columns PickerColumns to be shown in the Picker.
+     *
+     * @param columns The actual focusable columns of a picker which are scrollable if the field
+     *                takes more than one value (e.g. for a DatePicker, day, month, and year fields
+     *                and for TimePicker, hour, minute, and am/pm fields form the columns).
      */
     public void setColumns(List<PickerColumn> columns) {
+        if (mSeparators.size() == 0) {
+            throw new IllegalStateException("Separators size is: " + mSeparators.size()
+                    + ". At least one separator must be provided");
+        } else if (mSeparators.size() == 1) {
+            CharSequence separator = mSeparators.get(0);
+            mSeparators.clear();
+            mSeparators.add("");
+            for (int i = 0; i < columns.size() - 1; i++) {
+                mSeparators.add(separator);
+            }
+            mSeparators.add("");
+        } else {
+            if (mSeparators.size() != (columns.size() + 1)) {
+                throw new IllegalStateException("Separators size: " + mSeparators.size() + " must"
+                        + "equal the size of columns: " + columns.size() + " + 1");
+            }
+        }
+
         mColumnViews.clear();
         mPickerView.removeAllViews();
         mColumns = new ArrayList<PickerColumn>(columns);
@@ -186,6 +240,13 @@
         }
         LayoutInflater inflater = LayoutInflater.from(getContext());
         int totalCol = getColumnsCount();
+
+        if (!TextUtils.isEmpty(mSeparators.get(0))) {
+            TextView separator = (TextView) inflater.inflate(
+                    R.layout.lb_picker_separator, mPickerView, false);
+            separator.setText(mSeparators.get(0));
+            mPickerView.addView(separator);
+        }
         for (int i = 0; i < totalCol; i++) {
             final int colIndex = i;
             final VerticalGridView columnView = (VerticalGridView) inflater.inflate(
@@ -202,16 +263,16 @@
             // as a result of the picker getting activated, otherwise the cached views with the
             // wrong alphas could be laid out.
             columnView.setItemViewCacheSize(0);
-            mColumnViews.add(columnView);
 
+            mColumnViews.add(columnView);
             // add view to root
             mPickerView.addView(columnView);
 
-            // add a separator if not the last element
-            if (i != totalCol - 1 && getSeparator() != null) {
+            if (!TextUtils.isEmpty(mSeparators.get(i + 1))) {
+                // add a separator if not the last element
                 TextView separator = (TextView) inflater.inflate(
                         R.layout.lb_picker_separator, mPickerView, false);
-                separator.setText(getSeparator());
+                separator.setText(mSeparators.get(i + 1));
                 mPickerView.addView(separator);
             }
 
@@ -224,8 +285,9 @@
     /**
      * When column labels change or column range changes, call this function to re-populate the
      * selection list.  Note this function cannot be called from RecyclerView layout/scroll pass.
+     *
      * @param columnIndex Index of column to update.
-     * @param column New column to update.
+     * @param column      New column to update.
      */
     public void setColumnAt(int columnIndex, PickerColumn column) {
         mColumns.set(columnIndex, column);
@@ -239,8 +301,9 @@
 
     /**
      * Manually set current value of a column.  The function will update UI and notify listeners.
-     * @param columnIndex Index of column to update.
-     * @param value New value of the column.
+     *
+     * @param columnIndex  Index of column to update.
+     * @param value        New value of the column.
      * @param runAnimation True to scroll to the value or false otherwise.
      */
     public void setColumnValue(int columnIndex, int value, boolean runAnimation) {
@@ -270,6 +333,7 @@
 
     /**
      * Register a callback to be invoked when the picker's value has changed.
+     *
      * @param listener The callback to ad
      */
     public void addOnValueChangedListener(PickerValueListener listener) {
@@ -281,6 +345,7 @@
 
     /**
      * Remove a previously installed value changed callback
+     *
      * @param listener The callback to remove.
      */
     public void removeOnValueChangedListener(PickerValueListener listener) {
@@ -311,7 +376,7 @@
             if (columnShownAsActivated) {
                 setOrAnimateAlpha(view, animate, mFocusedAlpha, -1, mDecelerateInterpolator);
             } else {
-                setOrAnimateAlpha(view, animate, mUnfocusedAlpha, -1,  mDecelerateInterpolator);
+                setOrAnimateAlpha(view, animate, mUnfocusedAlpha, -1, mDecelerateInterpolator);
             }
         } else {
             // set alpha for remaining items in the column
@@ -343,11 +408,12 @@
     /**
      * Classes extending {@link Picker} can override this function to supply the
      * behavior when a list has been scrolled.  Subclass may call {@link #setColumnValue(int, int,
-     * boolean)} and or {@link #setColumnAt(int,PickerColumn)}.  Subclass should not directly call
+     * boolean)} and or {@link #setColumnAt(int, PickerColumn)}.  Subclass should not directly call
      * {@link PickerColumn#setCurrentValue(int)} which does not update internal state or notify
      * listeners.
+     *
      * @param columnIndex index of which column was changed.
-     * @param newValue A new value desired to be set on the column.
+     * @param newValue    A new value desired to be set on the column.
      */
     public void onColumnValueChanged(int columnIndex, int newValue) {
         PickerColumn column = mColumns.get(columnIndex);
@@ -425,35 +491,37 @@
     private final OnChildViewHolderSelectedListener mColumnChangeListener = new
             OnChildViewHolderSelectedListener() {
 
-        @Override
-        public void onChildViewHolderSelected(RecyclerView parent, RecyclerView.ViewHolder child,
-                int position, int subposition) {
-            PickerScrollArrayAdapter pickerScrollArrayAdapter = (PickerScrollArrayAdapter) parent
-                    .getAdapter();
+                @Override
+                public void onChildViewHolderSelected(RecyclerView parent,
+                        RecyclerView.ViewHolder child,
+                        int position, int subposition) {
+                    PickerScrollArrayAdapter pickerScrollArrayAdapter =
+                            (PickerScrollArrayAdapter) parent
+                                    .getAdapter();
 
-            int colIndex = mColumnViews.indexOf(parent);
-            updateColumnAlpha(colIndex, true);
-            if (child != null) {
-                int newValue = mColumns.get(colIndex).getMinValue() + position;
-                onColumnValueChanged(colIndex, newValue);
-            }
-        }
+                    int colIndex = mColumnViews.indexOf(parent);
+                    updateColumnAlpha(colIndex, true);
+                    if (child != null) {
+                        int newValue = mColumns.get(colIndex).getMinValue() + position;
+                        onColumnValueChanged(colIndex, newValue);
+                    }
+                }
 
-    };
+            };
 
     @Override
     public boolean dispatchKeyEvent(android.view.KeyEvent event) {
         if (isActivated()) {
             final int keyCode = event.getKeyCode();
             switch (keyCode) {
-            case KeyEvent.KEYCODE_DPAD_CENTER:
-            case KeyEvent.KEYCODE_ENTER:
-                if (event.getAction() == KeyEvent.ACTION_UP) {
-                    performClick();
-                }
-                break;
-            default:
-                return super.dispatchKeyEvent(event);
+                case KeyEvent.KEYCODE_DPAD_CENTER:
+                case KeyEvent.KEYCODE_ENTER:
+                    if (event.getAction() == KeyEvent.ACTION_UP) {
+                        performClick();
+                    }
+                    break;
+                default:
+                    return super.dispatchKeyEvent(event);
             }
             return true;
         }
@@ -501,9 +569,11 @@
             }
         }
     }
+
     /**
      * Returns number of visible items showing in a column when it's activated.  The default value
      * is 3.
+     *
      * @return Number of visible items showing in a column when it's activated.
      */
     public float getActivatedVisibleItemCount() {
@@ -513,6 +583,7 @@
     /**
      * Changes number of visible items showing in a column when it's activated.  The default value
      * is 3.
+     *
      * @param visiblePickerItems Number of visible items showing in a column when it's activated.
      */
     public void setActivatedVisibleItemCount(float visiblePickerItems) {
@@ -530,6 +601,7 @@
     /**
      * Returns number of visible items showing in a column when it's not activated.  The default
      * value is 1.
+     *
      * @return Number of visible items showing in a column when it's not activated.
      */
     public float getVisibleItemCount() {
@@ -539,6 +611,7 @@
     /**
      * Changes number of visible items showing in a column when it's not activated.  The default
      * value is 1.
+     *
      * @param pickerItems Number of visible items showing in a column when it's not activated.
      */
     public void setVisibleItemCount(float pickerItems) {
@@ -605,6 +678,7 @@
      * Change current selected column.  Picker shows multiple items on selected column if Picker has
      * focus.  Picker shows multiple items on all column if Picker has no focus (e.g. a Touchscreen
      * screen).
+     *
      * @param columnIndex Index of column to activate.
      */
     public void setSelectedColumn(int columnIndex) {
@@ -618,6 +692,7 @@
 
     /**
      * Get current activated column index.
+     *
      * @return Current activated column index.
      */
     public int getSelectedColumn() {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/PickerUtility.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/PickerUtility.java
index 1e3a28f..bff278a 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/PickerUtility.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/PickerUtility.java
@@ -17,7 +17,7 @@
 package android.support.v17.leanback.widget.picker;
 
 import android.content.res.Resources;
-import android.support.v17.leanback.R;
+import android.os.Build;
 
 import java.text.DateFormatSymbols;
 import java.util.Calendar;
@@ -29,11 +29,13 @@
  */
 class PickerUtility {
 
+    // Whether the API version supports the use of {@link DateFormat#getBestDateTimePattern()}
+    static final boolean SUPPORTS_BEST_DATE_TIME_PATTERN =
+            Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
     public static class DateConstant {
         public final Locale locale;
         public final String[] months;
         public final String[] days;
-        public final String dateSeparator;
 
         private DateConstant(Locale locale, Resources resources) {
             this.locale = locale;
@@ -42,7 +44,6 @@
             Calendar calendar = Calendar.getInstance(locale);
             days = createStringIntArrays(calendar.getMinimum(Calendar.DAY_OF_MONTH),
                     calendar.getMaximum(Calendar.DAY_OF_MONTH), "%02d");
-            dateSeparator = resources.getString(R.string.lb_date_separator);
         }
     }
 
@@ -52,7 +53,6 @@
         public final String[] hours24;
         public final String[] minutes;
         public final String[] ampm;
-        public final String timeSeparator;
 
         private TimeConstant(Locale locale, Resources resources) {
             this.locale = locale;
@@ -61,7 +61,6 @@
             hours24 = createStringIntArrays(0, 23, "%02d");
             minutes = createStringIntArrays(0, 59, "%02d");
             ampm = symbols.getAmPmStrings();
-            timeSeparator = resources.getString(R.string.lb_time_separator);
         }
     }
 
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/TimePicker.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/TimePicker.java
index 29059ba..09a0ea9 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/TimePicker.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/TimePicker.java
@@ -18,18 +18,17 @@
 
 import android.content.Context;
 import android.content.res.TypedArray;
-import android.os.Build;
 import android.support.annotation.IntRange;
 import android.support.v17.leanback.R;
 import android.text.TextUtils;
 import android.text.format.DateFormat;
 import android.util.AttributeSet;
 import android.view.View;
-import android.view.ViewGroup;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
 import java.util.Locale;
 
 /**
@@ -62,8 +61,6 @@
     PickerColumn mHourColumn;
     PickerColumn mMinuteColumn;
     PickerColumn mAmPmColumn;
-    private ViewGroup mPickerView;
-    private View mAmPmSeparatorView;
     int mColHourIndex;
     int mColMinuteIndex;
     int mColAmPmIndex;
@@ -76,6 +73,8 @@
     private int mCurrentMinute;
     private int mCurrentAmPmIndex;
 
+    private String mTimePickerFormat;
+
     /**
      * Constructor called when inflating a TimePicker widget. This version uses a default style of
      * 0, so the only attribute values applied are those in the Context's Theme and the given
@@ -105,8 +104,6 @@
         mConstant = PickerUtility.getTimeConstantInstance(Locale.getDefault(),
                 context.getResources());
 
-        setSeparator(mConstant.timeSeparator);
-        mPickerView = findViewById(R.id.picker);
         final TypedArray attributesArray = context.obtainStyledAttributes(attrs,
                 R.styleable.lbTimePicker);
         mIs24hFormat = attributesArray.getBoolean(R.styleable.lbTimePicker_is24HourFormat,
@@ -114,25 +111,17 @@
         boolean useCurrentTime = attributesArray.getBoolean(R.styleable.lbTimePicker_useCurrentTime,
                 true);
 
-        updateColumns(getTimePickerFormat());
-
-        // The column range for the minute and AM/PM column is static and does not change, whereas
-        // the hour column range can change depending on whether 12 or 24 hour format is set at
-        // any given time.
-        updateHourColumn(false);
-        updateMin(mMinuteColumn, 0);
-        updateMax(mMinuteColumn, 59);
-
-        updateMin(mAmPmColumn, 0);
-        updateMax(mAmPmColumn, 1);
-
-        updateAmPmColumn();
+        // The following 2 methods must be called after setting mIs24hFormat since this attribute is
+        // used to extract the time format string.
+        updateColumns();
+        updateColumnsRange();
 
         if (useCurrentTime) {
             Calendar currentDate = PickerUtility.getCalendarForLocale(null,
                     mConstant.locale);
             setHour(currentDate.get(Calendar.HOUR_OF_DAY));
             setMinute(currentDate.get(Calendar.MINUTE));
+            setAmPmValue();
         }
     }
 
@@ -153,22 +142,104 @@
     }
 
     /**
+     * @return The best localized representation of time for the current locale
+     */
+    String getBestHourMinutePattern() {
+        final String hourPattern;
+        if (PickerUtility.SUPPORTS_BEST_DATE_TIME_PATTERN) {
+            hourPattern = DateFormat.getBestDateTimePattern(mConstant.locale, mIs24hFormat ? "Hma"
+                    : "hma");
+        } else {
+            final java.text.DateFormat dateFormat =
+                    SimpleDateFormat.getTimeInstance(SimpleDateFormat.FULL, mConstant.locale);
+            if (dateFormat instanceof SimpleDateFormat) {
+                String defaultPattern = ((SimpleDateFormat) dateFormat).toPattern();
+                defaultPattern = defaultPattern.replace("s", "");
+                if (mIs24hFormat) {
+                    defaultPattern = defaultPattern.replace('h', 'H');
+                }
+                hourPattern = defaultPattern;
+            } else {
+                hourPattern = mIs24hFormat ? "H:mma" : "h:mma";
+            }
+        }
+        return TextUtils.isEmpty(hourPattern) ? "h:mma" : hourPattern;
+    }
+
+    /**
+     * Extracts the separators used to separate time fields (including before the first and after
+     * the last time field). The separators can vary based on the individual locale and 12 or
+     * 24 hour time format, defined in the Unicode CLDR and cannot be supposed to be ":".
+     *
+     * See http://unicode.org/cldr/trac/browser/trunk/common/main
+     *
+     * For example, for english in 12 hour format
+     * (time pattern of "h:mm a"), this will return {"", ":", "", ""}, where the first separator
+     * indicates nothing needs to be displayed to the left of the hour field, ":" needs to be
+     * displayed to the right of hour field, and so forth.
+     *
+     * @return The ArrayList of separators to populate between the actual time fields in the
+     * TimePicker.
+     */
+    List<CharSequence> extractSeparators() {
+        // Obtain the time format string per the current locale (e.g. h:mm a)
+        String hmaPattern = getBestHourMinutePattern();
+
+        List<CharSequence> separators = new ArrayList<>();
+        StringBuilder sb = new StringBuilder();
+        char lastChar = '\0';
+        // See http://www.unicode.org/reports/tr35/tr35-dates.html for hour formats
+        final char[] timeFormats = {'H', 'h', 'K', 'k', 'm', 'M', 'a'};
+        boolean processingQuote = false;
+        for (int i = 0; i < hmaPattern.length(); i++) {
+            char c = hmaPattern.charAt(i);
+            if (c == ' ') {
+                continue;
+            }
+            if (c == '\'') {
+                if (!processingQuote) {
+                    sb.setLength(0);
+                    processingQuote = true;
+                } else {
+                    processingQuote = false;
+                }
+                continue;
+            }
+            if (processingQuote) {
+                sb.append(c);
+            } else {
+                if (isAnyOf(c, timeFormats)) {
+                    if (c != lastChar) {
+                        separators.add(sb.toString());
+                        sb.setLength(0);
+                    }
+                } else {
+                    sb.append(c);
+                }
+            }
+            lastChar = c;
+        }
+        separators.add(sb.toString());
+        return separators;
+    }
+
+    private static boolean isAnyOf(char c, char[] any) {
+        for (int i = 0; i < any.length; i++) {
+            if (c == any[i]) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
      *
      * @return the time picker format string based on the current system locale and the layout
      *         direction
      */
-    private String getTimePickerFormat() {
+    private String extractTimeFields() {
         // Obtain the time format string per the current locale (e.g. h:mm a)
-        String hmaPattern;
-        if (Build.VERSION.SDK_INT >= 18) {
-            hmaPattern = DateFormat.getBestDateTimePattern(mConstant.locale, "hma");
-        } else {
-            // getTimeInstance is not very reliable and it may not include 'a' (for AM/PM)
-            // in the returned pattern string. In those cases, we assume that am/pm appears at the
-            // end of the fields. Need to find a more reliable way for API below 18.
-            hmaPattern  = ((SimpleDateFormat) java.text.DateFormat
-                    .getTimeInstance(java.text.DateFormat.FULL, mConstant.locale)).toPattern();
-        }
+        String hmaPattern = getBestHourMinutePattern();
 
         boolean isRTL = TextUtils.getLayoutDirectionFromLocale(mConstant.locale) == View
                 .LAYOUT_DIRECTION_RTL;
@@ -177,21 +248,35 @@
         // Hour will always appear to the left of minutes regardless of layout direction.
         String timePickerFormat = isRTL ? "mh" : "hm";
 
-        return isAmPmAtEnd ? (timePickerFormat + "a") : ("a" + timePickerFormat);
+        if (is24Hour()) {
+            return timePickerFormat;
+        } else {
+            return isAmPmAtEnd ? (timePickerFormat + "a") : ("a" + timePickerFormat);
+        }
     }
 
-    private void updateColumns(String timePickerFormat) {
-        if (TextUtils.isEmpty(timePickerFormat)) {
-            timePickerFormat = "hma";
+    private void updateColumns() {
+        String timePickerFormat = getBestHourMinutePattern();
+        if (TextUtils.equals(timePickerFormat, mTimePickerFormat)) {
+            return;
         }
-        timePickerFormat = timePickerFormat.toUpperCase();
+        mTimePickerFormat = timePickerFormat;
+
+        String timeFieldsPattern = extractTimeFields();
+        List<CharSequence> separators = extractSeparators();
+        if (separators.size() != (timeFieldsPattern.length() + 1)) {
+            throw new IllegalStateException("Separators size: " + separators.size() + " must equal"
+                    + " the size of timeFieldsPattern: " + timeFieldsPattern.length() + " + 1");
+        }
+        setSeparators(separators);
+        timeFieldsPattern = timeFieldsPattern.toUpperCase();
 
         mHourColumn = mMinuteColumn = mAmPmColumn = null;
         mColHourIndex = mColMinuteIndex = mColAmPmIndex = -1;
 
         ArrayList<PickerColumn> columns = new ArrayList<>(3);
-        for (int i = 0; i < timePickerFormat.length(); i++) {
-            switch (timePickerFormat.charAt(i)) {
+        for (int i = 0; i < timeFieldsPattern.length(); i++) {
+            switch (timeFieldsPattern.charAt(i)) {
                 case 'H':
                     columns.add(mHourColumn = new PickerColumn());
                     mHourColumn.setStaticLabels(mConstant.hours24);
@@ -214,38 +299,28 @@
             }
         }
         setColumns(columns);
-        mAmPmSeparatorView = mPickerView.getChildAt(mColAmPmIndex == 0 ? 1 :
-                (2 * mColAmPmIndex - 1));
     }
 
-    /**
-     * Updates the range in the hour column and notifies column changed if notifyChanged is true.
-     * Hour column can have either [0-23] or [1-12] depending on whether the 24 hour format is set
-     * or not.
-     *
-     * @param notifyChanged {code true} if we should notify data set changed on the hour column,
-     *                      {@code false} otherwise.
-     */
-    private void updateHourColumn(boolean notifyChanged) {
+    private void updateColumnsRange() {
+        // updateHourColumn(false);
         updateMin(mHourColumn, mIs24hFormat ? 0 : 1);
         updateMax(mHourColumn, mIs24hFormat ? 23 : 12);
-        if (notifyChanged) {
-            setColumnAt(mColHourIndex, mHourColumn);
+
+        updateMin(mMinuteColumn, 0);
+        updateMax(mMinuteColumn, 59);
+
+        if (mAmPmColumn != null) {
+            updateMin(mAmPmColumn, 0);
+            updateMax(mAmPmColumn, 1);
         }
     }
 
     /**
-     * Updates AM/PM column depending on whether the 24 hour format is set or not. The visibility of
-     * this column is set to {@code GONE} for a 24 hour format, and {@code VISIBLE} in 12 hour
-     * format. This method also updates the value of this column for a 12 hour format.
+     * Updates the value of AM/PM column for a 12 hour time format. The correct value should already
+     * be calculated before this method is called by calling setHour.
      */
-    private void updateAmPmColumn() {
-        if (mIs24hFormat) {
-            mColumnViews.get(mColAmPmIndex).setVisibility(GONE);
-            mAmPmSeparatorView.setVisibility(GONE);
-        } else {
-            mColumnViews.get(mColAmPmIndex).setVisibility(VISIBLE);
-            mAmPmSeparatorView.setVisibility(VISIBLE);
+    private void setAmPmValue() {
+        if (!is24Hour()) {
             setColumnValue(mColAmPmIndex, mCurrentAmPmIndex, false);
         }
     }
@@ -261,7 +336,7 @@
             throw new IllegalArgumentException("hour: " + hour + " is not in [0-23] range in");
         }
         mCurrentHour = hour;
-        if (!mIs24hFormat) {
+        if (!is24Hour()) {
             if (mCurrentHour >= HOURS_IN_HALF_DAY) {
                 mCurrentAmPmIndex = PM_INDEX;
                 if (mCurrentHour > HOURS_IN_HALF_DAY) {
@@ -273,7 +348,7 @@
                     mCurrentHour = HOURS_IN_HALF_DAY;
                 }
             }
-            updateAmPmColumn();
+            setAmPmValue();
         }
         setColumnValue(mColHourIndex, mCurrentHour, false);
     }
@@ -301,9 +376,6 @@
      * @see #getMinute()
      */
     public void setMinute(@IntRange(from = 0, to = 59) int minute) {
-        if (mCurrentMinute == minute) {
-            return;
-        }
         if (minute < 0 || minute > 59) {
             throw new IllegalArgumentException("minute: " + minute + " is not in [0-59] range.");
         }
@@ -334,10 +406,14 @@
         }
         // the ordering of these statements is important
         int currentHour = getHour();
+        int currentMinute = getMinute();
         mIs24hFormat = is24Hour;
-        updateHourColumn(true);
+        updateColumns();
+        updateColumnsRange();
+
         setHour(currentHour);
-        updateAmPmColumn();
+        setMinute(currentMinute);
+        setAmPmValue();
     }
 
     /**
diff --git a/v17/leanback/tests/AndroidManifest.xml b/v17/leanback/tests/AndroidManifest.xml
index b21246e..dc8c963 100644
--- a/v17/leanback/tests/AndroidManifest.xml
+++ b/v17/leanback/tests/AndroidManifest.xml
@@ -22,11 +22,11 @@
         <activity android:name="android.support.v17.leanback.widget.GridActivity"
                   android:exported="true"/>
 
-        <activity android:name="android.support.v17.leanback.widget.TimePickerActivity"
+        <activity android:name="android.support.v17.leanback.widget.picker.TimePickerActivity"
                   android:exported="true"
                   android:theme="@style/Theme.Leanback"/>
 
-        <activity android:name="android.support.v17.leanback.widget.DatePickerActivity"
+        <activity android:name="android.support.v17.leanback.widget.picker.DatePickerActivity"
                   android:exported="true"
                   android:theme="@style/Theme.Leanback"/>
 
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerActivity.java b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerActivity.java
similarity index 95%
rename from v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerActivity.java
rename to v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerActivity.java
index eda702f..dda9c91 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerActivity.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.support.v17.leanback.widget;
+package android.support.v17.leanback.widget.picker;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerTest.java b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerTest.java
similarity index 82%
rename from v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerTest.java
rename to v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerTest.java
index e2d2e99..c25838e 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/widget/DatePickerTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/DatePickerTest.java
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package android.support.v17.leanback.widget;
+package android.support.v17.leanback.widget.picker;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
@@ -27,16 +28,19 @@
 import android.support.test.rule.ActivityTestRule;
 import android.support.test.runner.AndroidJUnit4;
 import android.support.v17.leanback.test.R;
-import android.support.v17.leanback.widget.picker.DatePicker;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Arrays;
+import java.util.List;
+
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class DatePickerTest {
@@ -55,9 +59,13 @@
             new ActivityTestRule<>(DatePickerActivity.class, false, false);
     private DatePickerActivity mActivity;
 
+    @Before
+    public void setUp() throws Exception {
+        mContext = InstrumentationRegistry.getTargetContext();
+    }
+
     public void initActivity(Intent intent) throws Throwable {
         mActivity = mActivityTestRule.launchActivity(intent);
-        mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
         mDatePickerView = (DatePicker) mActivity.findViewById(R.id.date_picker);
         mDatePickerInnerView = (ViewGroup) mDatePickerView.findViewById(R.id.picker);
         mDatePickerView.setActivatedVisibleItemCount(3);
@@ -375,6 +383,86 @@
         }
     }
 
+    @Test
+    public void testExtractSeparatorsForDifferentLocales() throws Throwable {
+        // date pattern for en_US (English)
+        DatePicker datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "M/d/y";
+            }
+        };
+        List<CharSequence> actualSeparators = datePicker.extractSeparators();
+        List<String> expectedSeparators = Arrays.asList(new String[]{"", "/", "/", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for fa_IR (Farsi)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "y/M/d";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"", "/", "/", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for ar_EG (Arabic)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "d/M/y";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"", "/", "/", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for cs_CZ (Czech)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "d. M. y";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"", ".", ".", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for hr_HR (Croatian)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "dd. MM. y.";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"", ".", ".", "."});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for hr_HR (Bulgarian)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "d.MM.y 'r'.";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"", ".", ".", "r."});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // date pattern for en_XA (English pseudo-locale)
+        datePicker = new DatePicker(mContext, null) {
+            @Override
+            String getBestYearMonthDayPattern(String datePickerFormat) {
+                return "[M/d/y]";
+            }
+        };
+        actualSeparators = datePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[]{"[", "/", "/", "]"});
+        assertEquals(expectedSeparators, actualSeparators);
+    }
+
     private void sendKeys(int ...keys) {
         for (int i = 0; i < keys.length; i++) {
             InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(keys[i]);
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerActivity.java b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerActivity.java
similarity index 95%
rename from v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerActivity.java
rename to v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerActivity.java
index 11c4d3c..6cf7042 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerActivity.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.support.v17.leanback.widget;
+package android.support.v17.leanback.widget.picker;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerTest.java b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerTest.java
similarity index 80%
rename from v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerTest.java
rename to v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerTest.java
index 7146d31..980eb1f 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/widget/TimePickerTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/widget/picker/TimePickerTest.java
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package android.support.v17.leanback.widget;
+package android.support.v17.leanback.widget.picker;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
 
 import android.content.Context;
 import android.content.Intent;
@@ -26,15 +27,18 @@
 import android.support.test.rule.ActivityTestRule;
 import android.support.test.runner.AndroidJUnit4;
 import android.support.v17.leanback.test.R;
-import android.support.v17.leanback.widget.picker.TimePicker;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Arrays;
+import java.util.List;
+
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class TimePickerTest {
@@ -43,8 +47,6 @@
     private static final long TRANSITION_LENGTH = 1000;
     private static final long UPDATE_LENGTH = 1000;
 
-
-    Context mContext;
     View mViewAbove;
     TimePicker mTimePicker12HourView;
     TimePicker mTimePicker24HourView;
@@ -54,6 +56,12 @@
     public ActivityTestRule<TimePickerActivity> mActivityTestRule =
             new ActivityTestRule<>(TimePickerActivity.class, false, false);
     private TimePickerActivity mActivity;
+    private Context mContext;
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = InstrumentationRegistry.getTargetContext();
+    }
 
     public void initActivity(Intent intent) throws Throwable {
         mActivity = mActivityTestRule.launchActivity(intent);
@@ -67,7 +75,7 @@
             }
         });
 
-        if (intent.getIntExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        if (intent.getIntExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets) == R.layout.timepicker_with_other_widgets) {
             mViewAbove = mActivity.findViewById(R.id.above_picker);
             mViewBelow = mActivity.findViewById(R.id.below_picker);
@@ -79,7 +87,7 @@
                     mTimePicker24HourView.setActivated(!mTimePicker24HourView.isActivated());
                 }
             });
-        } else if (intent.getIntExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        } else if (intent.getIntExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets) == R.layout.timepicker_alone) {
             // A layout with only a TimePicker widget that is initially activated.
             mActivityTestRule.runOnUiThread(new Runnable() {
@@ -95,9 +103,10 @@
     @Test
     public void testSetHourIn24hFormat() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
+
         mActivityTestRule.runOnUiThread(new Runnable() {
             @Override
             public void run() {
@@ -152,7 +161,7 @@
     @Test
     public void testSetHourIn12hFormat() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -209,7 +218,7 @@
     @Test
     public void testSetMinuteIn24hFormat() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -246,7 +255,7 @@
     @Test
     public void testSetMinuteIn12hFormat() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -284,7 +293,7 @@
     @Test
     public void testAmToPmTransition() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -326,7 +335,7 @@
     @Test
     public void testPmToAmTransition() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -368,7 +377,7 @@
     @Test
     public void test12To24HourFormatTransition() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -400,7 +409,7 @@
     @Test
     public void test24To12HourFormatTransition() throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_with_other_widgets);
         initActivity(intent);
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -433,7 +442,7 @@
     public void testInitiallyActiveTimePicker()
             throws Throwable {
         Intent intent = new Intent();
-        intent.putExtra(DatePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
+        intent.putExtra(TimePickerActivity.EXTRA_LAYOUT_RESOURCE_ID,
                 R.layout.timepicker_alone);
         initActivity(intent);
 
@@ -473,12 +482,106 @@
         sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
         Thread.sleep(TRANSITION_LENGTH);
         assertThat("The third column of TimePicker should hold focus after scrolling right",
-                mTimePickerInnerView.getChildAt(4).hasFocus(), is(true));
+                mTimePickerInnerView.getChildAt(3).hasFocus(), is(true));
 
         sendKeys(KeyEvent.KEYCODE_DPAD_UP);
         Thread.sleep(TRANSITION_LENGTH);
         assertThat("The third column of TimePicker should still hold focus after scrolling down",
-                mTimePickerInnerView.getChildAt(4).hasFocus(), is(true));
+                mTimePickerInnerView.getChildAt(3).hasFocus(), is(true));
+    }
+
+    @Test
+    public void testExtractSeparatorsForDifferentLocales() throws Throwable {
+        // A typical time pattern for different locales in 12-hour format
+        TimePicker timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "h:mm a";
+            }
+        };
+        List<CharSequence> actualSeparators = timePicker.extractSeparators();
+        List<String> expectedSeparators = Arrays.asList(new String[] {"", ":", "", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // time pattern for ja_JP in 12 hour format
+        timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "aK:mm";
+            }
+
+            @Override
+            public boolean is24Hour() {
+                return false;
+            }
+        };
+        actualSeparators = timePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[] {"", "", ":", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // time pattern for fr_CA in 24 hour format
+        timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "HH 'h' mm";
+            }
+
+            @Override
+            public boolean is24Hour() {
+                return true;
+            }
+        };
+        actualSeparators = timePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[] {"", "h", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // time pattern for hsb_DE in 24 hour format
+        timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "H:mm 'hodz'";
+            }
+
+            @Override
+            public boolean is24Hour() {
+                return true;
+            }
+        };
+        actualSeparators = timePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[] {"", ":", "hodz"});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // time pattern for ko_KR in 12 hour format
+        timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "a h:mm";
+            }
+
+            @Override
+            public boolean is24Hour() {
+                return false;
+            }
+        };
+        actualSeparators = timePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[] {"", "", ":", ""});
+        assertEquals(expectedSeparators, actualSeparators);
+
+        // time pattern for fa_IR in 24 hour format
+        timePicker = new TimePicker(mContext, null) {
+            @Override
+            String getBestHourMinutePattern() {
+                return "H:mm";
+            }
+
+            @Override
+            public boolean is24Hour() {
+                return true;
+            }
+        };
+        actualSeparators = timePicker.extractSeparators();
+        expectedSeparators = Arrays.asList(new String[] {"", ":", ""});
+        assertEquals(expectedSeparators, actualSeparators);
     }
 
     private void sendKeys(int ...keys) {