কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড SQLite-এ ডেট ও টাইম ফরম্যাট পরিবর্তন

এই উদাহরণে দেখানো হয়েছে কিভাবে অ্যান্ড্রয়েড SQLite-এ ডেটা ইনসার্ট করার সময় ডেট ও টাইম ফরম্যাট কাস্টোমাইজ করা যায়।

স্টেপ ১: নতুন প্রজেক্ট তৈরি

Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।

স্টেপ ২: res/layout/activity_main.xml

(পূর্বের উদাহরণের মতো একই লেআউট - নাম, স্যালারি ইনপুট এবং Save, Refresh, Update, Delete বাটন সহ ListView)

স্টেপ ৩: src/MainActivity.java


package com.example.andy.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    Button save, refresh;
    EditText name, salary;
    ArrayAdapter arrayAdapter;
    private ListView listView;

    @Override
    protected void onCreate(Bundle readdInstanceState) {
        super.onCreate(readdInstanceState);
        setContentView(R.layout.activity_main);
        
        final DatabaseHelper helper = new DatabaseHelper(this);
        final ArrayList array_list = helper.getAllCotacts();
        
        name = findViewById(R.id.name);
        salary = findViewById(R.id.salary);
        listView = findViewById(R.id.listView);
        
        arrayAdapter = new ArrayAdapter(MainActivity.this, 
            android.R.layout.simple_list_item_1, array_list);
        listView.setAdapter(arrayAdapter);
        
        // বাটন লিসেনারগুলো (পূর্বের মতো)
        // ... (save, refresh, update, delete ক্লিক লিসেনার)
    }
}

স্টেপ ৪: src/DatabaseHelper.java - কী পরিবর্তন


package com.example.andy.myapplication;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import java.io.IOException;
import java.util.ArrayList;

class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "salaryDatabase6";
    public static final String CONTACTS_TABLE_NAME = "SalaryDetails";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL(
                "create table " + CONTACTS_TABLE_NAME + 
                "(id INTEGER PRIMARY KEY, name text, salary int, datetime default current_timestamp)"
            );
        } catch (SQLiteException e) {
            // error handling
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + CONTACTS_TABLE_NAME);
        onCreate(db);
    }

    public boolean insert(String s, String s1) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("name", s);
        contentValues.put("salary", s1);
        db.replace(CONTACTS_TABLE_NAME, null, contentValues);
        return true;
    }

    // কী পরিবর্তন: strftime দিয়ে ডেট ফরম্যাট কাস্টোমাইজ
    public ArrayList getAllCotacts() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<String> array_list = new ArrayList<String>();
        
        // strftime('%d-%m-%Y %H:%M:%S', datetime) দিয়ে ফরম্যাট: DD-MM-YYYY HH:MM:SS
        Cursor res = db.rawQuery(
            "select (id ||' : '||name || ' : ' || salary || ' : '|| " +
            "strftime('%d-%m-%Y %H:%M:%S', datetime)) as fullname from " 
            + CONTACTS_TABLE_NAME, null
        );
        
        res.moveToFirst();
        while (res.isAfterLast() == false) {
            if ((res != null) && (res.getCount() > 0))
                array_list.add(res.getString(res.getColumnIndex("fullname")));
            res.moveToNext();
        }
        return array_list;
    }

    public boolean update(String s, String s1) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("UPDATE " + CONTACTS_TABLE_NAME + " SET name = " + "'" + s + "', " + "salary = " + "'" + s1 + "'");
        return true;
    }

    public boolean delete() {
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("DELETE from " + CONTACTS_TABLE_NAME);
        return true;
    }
}

SQLite Date/Time ফরম্যাট স্ট্রিং

ফরম্যাট স্ট্রিং আউটপুট উদাহরণ ব্যাখ্যা
%d-%m-%Y %H:%M:%S 31-03-2022 12:00:26 দিন-মাস-বছর ঘন্টা:মিনিট:সেকেন্ড
%Y-%m-%d 2022-03-31 ISO 8601 ডেট ফরম্যাট
%H:%M 12:00 শুধু টাইম
%s 1648704026 ইপক টাইমস্ট্যাম্প

রান করা

অ্যান্ড্রয়েড ডিভাইসে রান করলে ListView-এ ডেটা দেখাবে কাস্টোম ডেট ফরম্যাটে।

  1. এন্ড্রয়েডে তারিখ ও সময় পরিবর্তন লিসেনার লিখার পদ্ধতি

  2. অ্যান্ড্রয়েডে তারিখ এবং সময় ফরম্যাট করার পদ্ধতি

  3. উইন্ডোজ ১১-এ তারিখ এবং সময় পরিবর্তন করার পদ্ধতি

  4. Windows 10-এ Date ও Time Formats পরিবর্তন করুন: দ্রুত গাইড