यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके Android में ISO 8601 फॉर्मेट स्ट्रिंग (जैसे "2020-07-05T09:27:37Z") को Date ऑब्जेक्ट में कैसे कन्वर्ट किया जाता है। SimpleDateFormat का उपयोग किया जाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio खोलें, File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2: activity_main.xml में UI जोड़ें
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Tutorials Point"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="32sp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textAlignment="center"
android:textColor="@android:color/holo_red_dark"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
चरण 3: MainActivity.kt में ISO 8601 पार्सिंग
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.text.SimpleDateFormat
import java.util.*
class MainActivity : AppCompatActivity() {
lateinit var textView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
textView = findViewById(R.id.textView)
val dtStart = "2020-07-05T09:27:37Z"
val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.getDefault())
format.timeZone = TimeZone.getTimeZone("UTC")
val date: Date = format.parse(dtStart)
textView.text = "ISO 8601 date/time: $date"
}
}
चरण 4: आधुनिक दृष्टिकोण (Java 8+ / Android API 26+) - java.time
import java.time.Instant
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.ZoneId
// ISO 8601 पार्स करना
val instant = Instant.parse("2020-07-05T09:27:37Z")
val zonedDateTime = instant.atZone(ZoneId.systemDefault())
// फॉर्मेट करना
val formatter = DateTimeFormatter.ofPattern("dd MMM yyyy, HH:mm:ss")
val formatted = zonedDateTime.format(formatter)
// Date में कन्वर्ट (लीगेसी API के लिए)
val date = Date.from(instant)
चरण 5: ThreeTenABP लाइब्रेरी (पुराने Android के लिए)
// build.gradle में: implementation "org.threeten:threetenbp:1.5.0" // उपयोग: import org.threeten.bp.Instant import org.threeten.bp.ZonedDateTime import org.threeten.bp.format.DateTimeFormatter
चरण 6: सामान्य ISO 8601 पैटर्न्स
| फॉर्मेट | उदाहरण | पैटर्न |
|---|---|---|
| UTC (Z) | 2020-07-05T09:27:37Z | yyyy-MM-dd'T'HH:mm:ss'Z' |
| ऑफसेट के साथ | 2020-07-05T09:27:37+05:30 | yyyy-MM-dd'T'HH:mm:ssXXX |
| मिलीसेकंड्स | 2020-07-05T09:27:37.123Z | yyyy-MM-dd'T'HH:mm:ss.SSS'Z' |
| सिर्फ डेट | 2020-07-05 | yyyy-MM-dd |
चरण 7: AndroidManifest.xml कॉन्फ़िगर करें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में किसी एक्टिविटी फ़ाइल को खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप चलने पर डिफ़ॉल्ट स्क्रीन देखें।
नोट: लेख में "ISO 1801" लिखा है, सही है "ISO 8601"।