Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Kotlin का उपयोग करके Android में ISO 8601 String को Date/Time ऑब्जेक्ट में कैसे कन्वर्ट करें?

यह उदाहरण दर्शाता है कि 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:37Zyyyy-MM-dd'T'HH:mm:ss'Z'
ऑफसेट के साथ2020-07-05T09:27:37+05:30yyyy-MM-dd'T'HH:mm:ssXXX
मिलीसेकंड्स2020-07-05T09:27:37.123Zyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
सिर्फ डेट2020-07-05yyyy-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"।

  1. Android में ISO 8601 स्ट्रिंग को Date/Time ऑब्जेक्ट में कैसे बदलें? Android में ISO 8601 स्ट्रिंग को Date/Time ऑब्जेक्ट में कैसे बदलें?

    Android में ISO 8601 तिथि स्ट्रिंग को Date ऑब्जेक्ट में पार्स करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे SimpleDateFormat का उपयोग करके ISO 8601 फॉर्मेट (जैसे 2019-08-15T09:27:37Z) की स्ट्रिंग को Java Date ऑब्जेक्ट में बदला जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुन

  1. Android में कलर इंटीजर को हेक्स स्ट्रिंग में कैसे बदलें? Android में कलर इंटीजर को हेक्स स्ट्रिंग में कैसे बदलें?

    Android में रंग को इंटीजर (ARGB) से हेक्साडेसिमल स्ट्रिंग (#RRGGBB या #AARRGGBB) में बदलने का तरीका। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=https://schem

  1. Android में मिलीसेकंड को डेट फॉर्मेट में कैसे बदलें? Android में मिलीसेकंड को डेट फॉर्मेट में कैसे बदलें?

    Android में मिलीसेकंड से डेट कन्वर्जन गाइड यह ट्यूटोरियल दिखाता है कि कैसे epoch मिलीसेकंड को पढ़ने योग्य डेट फॉर्मेट में बदला जाता है, SimpleDateFormat और आधुनिक java.time API का उपयोग करके। चरण 1: प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट फाइल res/layout/activity_main.