diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 8db231c..531c2a6 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -1339,6 +1339,12 @@
         <!--      VIEW/WIDGET PACKAGE SAMPLES      -->
         <!-- ************************************* -->
 
+        <activity android:name=".view.TextClockDemo" android:label="Views/TextClock">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
         <activity android:name=".view.ChronometerDemo" android:label="Views/Chronometer">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/samples/ApiDemos/res/layout/textclock.xml b/samples/ApiDemos/res/layout/textclock.xml
new file mode 100644
index 0000000..f86f616
--- /dev/null
+++ b/samples/ApiDemos/res/layout/textclock.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Lots of buttons = need scrolling -->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <!-- Default formats -->
+        <TextClock
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <!-- Shows the date only -->
+        <TextClock
+            android:format12Hour="MMM dd, yyyy"
+            android:format24Hour="MMM dd, yyyy"
+
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <!-- Use styles -->
+        <TextClock
+            android:format12Hour="@string/styled_12_hour_clock"
+            android:format24Hour="@string/styled_24_hour_clock"
+
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <!-- Shows seconds -->
+        <TextClock
+            android:format12Hour="hh:mm:ss aa"
+            android:format24Hour="kk:mm:ss"
+
+            android:textSize="20sp"
+            android:shadowColor="#7fffffff"
+            android:shadowRadius="3.0"
+
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <!-- Use a fixed time zone -->
+        <TextClock
+            android:format12Hour="'Time in Paris:' MMM dd, yyyy h:mmaa"
+            android:format24Hour="'Time in Paris:' MMM dd, yyyy k:mm"
+            android:timeZone="Europe/Paris"
+
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+    </LinearLayout>
+    
+</ScrollView>
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 6211a0d..6149cd4 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -21,6 +21,9 @@
     <!--  app/activity examples strings  -->
     <!-- =============================== -->
 
+    <string name="styled_12_hour_clock">MM/<font fgcolor="#ffff0000"><b>dd</b></font>/yy h<font fgcolor="#ffff0000"><sup><small>mm</small></sup></font><b>aa</b></string>
+    <string name="styled_24_hour_clock">MM/<font fgcolor="#ffff0000"><b>dd</b></font>/yy k<font fgcolor="#ffff0000"><sup><small>mm</small></sup></font></string>
+
     <string name="tabs_1_tab_1">tab1</string>
     <string name="tabs_1_tab_2">tab2</string>
     <string name="tabs_1_tab_3">tab3</string>
diff --git a/samples/ApiDemos/src/com/example/android/apis/view/TextClockDemo.java b/samples/ApiDemos/src/com/example/android/apis/view/TextClockDemo.java
new file mode 100644
index 0000000..f2b85ce
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/view/TextClockDemo.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.view;
+
+// Need the following import to get access to the app resources, since this
+// class is in a sub-package.
+import android.text.Html;
+import android.widget.TextClock;
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+/**
+ * Variants of {@link TextClock}.
+ */
+public class TextClockDemo extends Activity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.textclock);
+    }
+}
