Android में मिलीसेकंड से डेट कन्वर्जन गाइड
यह ट्यूटोरियल दिखाता है कि कैसे epoch मिलीसेकंड को पढ़ने योग्य डेट फॉर्मेट में बदला जाता है, SimpleDateFormat और आधुनिक java.time API का उपयोग करके।
चरण 1: प्रोजेक्ट बनाएं
Android Studio में नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फाइल
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:padding="4dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
चरण 3: SimpleDateFormat के साथ (लीगेसी)
src/MainActivity.java:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
convertMillisecondsToDate();
}
private void convertMillisecondsToDate() {
long milliseconds = 9897546853323L; // उदाहरण टाइमस्टैम्प
// विभिन्न फॉर्मेट्स
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", Locale.getDefault());
String date1 = sdf1.format(new Date(milliseconds));
String date2 = sdf2.format(new Date(milliseconds));
String date3 = sdf3.format(new Date(milliseconds));
String result = "फॉर्मेट 1 (dd/MM/yyyy): " + date1 + "\n" +
"फॉर्मेट 2 (yyyy-MM-dd HH:mm:ss): " + date2 + "\n" +
"फॉर्मेट 3 (पूर्ण): " + date3;
textView.setText(result);
}
}
चरण 3 (बेहतर): java.time API (API 26+)
आधुनिक, थ्रेड-सेफ और अधिक शक्तिशाली:
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
private void convertWithModernAPI() {
long milliseconds = 9897546853323L;
Instant instant = Instant.ofEpochMilli(milliseconds);
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy HH:mm:ss z");
String date1 = zdt.format(formatter1);
String date2 = zdt.format(formatter2);
String date3 = zdt.format(formatter3);
// टाइमजोन के साथ
ZonedDateTime utc = instant.atZone(ZoneId.of("UTC"));
String utcDate = utc.format(formatter2);
}
आम डेट फॉर्मेट पैटर्न्स
| पैटर्न | आउटपुट उदाहरण |
|---|---|
| dd/MM/yyyy | 15/01/2023 |
| yyyy-MM-dd | 2023-01-15 |
| HH:mm:ss | 14:30:45 |
| hh:mm a | 02:30 PM |
| EEE, d MMM yyyy | Sun, 15 Jan 2023 |
चरण 4: मैनिफेस्ट
स्टैंडर्ड कॉन्फ़िगरेशन।
बेस्ट प्रैक्टिसेज
- API 26+ पर java.time API प्राथमिकता दें
- हमेशा Locale निर्दिष्ट करें
- SimpleDateFormat थ्रेड-सेफ नहीं है - हर उपयोग के लिए नया इंस्टेंस बनाएं
- टाइमजोन का ध्यान रखें - सर्वर टाइमस्टैम्प्स आमतौर पर UTC में होते हैं