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

एंड्रॉइड में कोटलिन का उपयोग करके दिनांक और समय को कैसे फॉर्मेट करें?

एंड्रॉइड में कोटलिन का उपयोग करके दिनांक/समय फॉर्मेटिंग

यह उदाहरण दर्शाता है कि SimpleDateFormat (लीगेसी) और आधुनिक java.time API (API 26+) का उपयोग करके दिनांक और समय को कैसे फॉर्मेट किया जाए।

चरण 1: नया प्रोजेक्ट बनाएं

एंड्रॉइड स्टूडियो में File → New Project चुनें।

चरण 2: लेआउट (activity_main.xml)

<?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"
    android:padding="16dp"
    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/textViewDateTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textAlignment="center"
        android:textSize="18sp"
        android:textStyle="bold|italic"
        android:textColor="@android:color/black" /> 
    <Button
        android:id="@+id/btnRefresh"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textViewDateTime"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="समय ताज़ा करें" /> 
</RelativeLayout>

चरण 3: MainActivity.kt (दोनों दृष्टिकोण)

import android.os.Build
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.annotation.RequiresApi
import java.text.SimpleDateFormat
import java.util.*
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.ZoneId

class MainActivity : AppCompatActivity() {
    private lateinit var textViewDateTime: TextView
    private lateinit var btnRefresh: Button
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        
        textViewDateTime = findViewById(R.id.textViewDateTime)
        btnRefresh = findViewById(R.id.btnRefresh)
        
        btnRefresh.setOnClickListener { updateDateTime() }
        updateDateTime() // प्रारंभिक प्रदर्शन
    }
    
    private fun updateDateTime() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            // आधुनिक java.time API (API 26+)
            textViewDateTime.text = formatWithModernAPI()
        } else {
            // लीगेसी SimpleDateFormat (पुराने API के लिए)
            textViewDateTime.text = formatWithLegacyAPI()
        }
    }
    
    // आधुनिक दृष्टिकोण (अनुशंसित)
    @RequiresApi(Build.VERSION_CODES.O)
    private fun formatWithModernAPI(): String {
        val now = LocalDateTime.now(ZoneId.systemDefault())
        val formatter = DateTimeFormatter.ofPattern("EEEE, dd MMMM yyyy 'को' hh:mm:ss a", Locale.getDefault())
        return now.format(formatter)
    }
    
    // लीगेसी दृष्टिकोण
    private fun formatWithLegacyAPI(): String {
        val calendar = Calendar.getInstance()
        val sdf = SimpleDateFormat("EEEE, dd MMMM yyyy 'को' hh:mm:ss a", Locale.getDefault())
        return sdf.format(calendar.time)
    }
}

चरण 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" 
    package="com.example.datetimeformat"> 
    <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>

सामान्य दिनांक पैटर्न:

पैटर्नउदाहरण आउटपुटविवरण
yyyy-MM-dd2024-01-15ISO दिनांक
dd/MM/yyyy15/01/2024भारतीय दिनांक
EEEE, dd MMMM yyyyसोमवार, 15 जनवरी 2024पूर्ण दिनांक
HH:mm:ss14:30:4524 घंटे समय
hh:mm a02:30 PM12 घंटे समय
yyyy-MM-dd'T'HH:mm:ss2024-01-15T14:30:45ISO 8601

java.time लाभ (API 26+):

  • थ्रेड-सुरक्षित: SimpleDateFormat थ्रेड-सुरक्षित नहीं है
  • अपरिवर्तनीय: दिनांक-समय ऑब्जेक्ट अपरिवर्तनीय हैं
  • बेहतर API: सहज ज्ञान युक्त विधि नाम (plusDays, minusHours)
  • टाइम ज़ोन समर्थन: ZoneId, ZonedDateTime के साथ अंतर्निहित
  • पार्सिंग: DateTimeFormatter अधिक मजबूत है

API 26 से कम के लिए Desugar सक्षम करें (build.gradle):

android {
    defaultConfig {
        multiDexEnabled true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

dependencies {
    coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.0.4"
}
  1. एंड्रॉइड में डेट और टाइम चेंज लिसनर कैसे लिखें? एंड्रॉइड में डेट और टाइम चेंज लिसनर कैसे लिखें?

    एंड्रॉइड में DatePicker और TimePicker चेंज लिसनर यह गाइड DatePicker और TimePicker विजेट्स के लिए चेंज लिसनर लागू करने का तरीका दिखाता है, दोनों इंलाइन विजेट्स और डायलॉग्स के लिए। लेआउट (activity_main.xml) <LinearLayout xmlns:android=https://schemas.android.com/apk/res/android android:layout_

  1. Android में तारीख और समय को फॉर्मेट कैसे करें? Android में तारीख और समय को फॉर्मेट कैसे करें?

    Android में SimpleDateFormat से तारीख और समय फॉर्मेट करना यह उदाहरण दर्शाता है कि Calendar और SimpleDateFormat का उपयोग करके वर्तमान तारीख और समय को कस्टम फॉर्मेट में कैसे प्रदर्शित किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट फ़ाइल (res/layout/act

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

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