Lấy Ngày giờ hiện tại của hệ thống trong J2ME?!

pian

GÂY DỰNG
Có bác nào lập trình J2ME giúp em cái vấn đề này với ạ. Em muốn lấy Date, Time của hệ thống nhưng nó hiển thị 1 chuỗi gì đó ko thể hiểu nổi. Liệu có phải do vấn đề về múi giờ UTC hay GMT ko ạ?
Các bác giúp em với. Em xin cảm ơn ạ.

Mã:
package FunctionTest;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;


public class Show extends MIDlet implements CommandListener
{
    private Form form;
    private Command exit, date, time;
    private Display dis;
    private Calendar cal;
    private long d1, d2;
    private String si1, si2;

    public Show()
    {
        form = new Form("Show Data");
        Date d = new Date();
        cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
        cal.setTime(d);

        d1 = cal.get(Calendar.DAY_OF_MONTH) + cal.get(Calendar.MONTH) + cal.get(Calendar.YEAR);
        d2 = cal.get(Calendar.HOUR_OF_DAY) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);

        exit = new Command("Exit", Command.EXIT, 0);
        date = new Command("Date", Command.SCREEN, 1);
        time = new Command("Time", Command.SCREEN, 2);

        form.addCommand(exit);
        form.addCommand(date);
        form.addCommand(time);
        form.setCommandListener(this);

        dis = Display.getDisplay(this);
        dis.setCurrent(form);

    }

    public void startApp()
    {
    }

    public void pauseApp()
    {
    }

    public void destroyApp(boolean unconditional)
    {
    }

    public void commandAction(Command cmd, Displayable d)
    {
        if (cmd == exit)
        {
            notifyDestroyed();
        }
        else if (cmd == date)
        {
            form.deleteAll();
            si1 = "Date: " + d1;
            form.append(si1);
            Display.getDisplay(this).setCurrent(form);
        }
        else if (cmd == time)
        {
            form.deleteAll();
            si2 = "Time: " + d2;
            form.append(si2);
            Display.getDisplay(this).setCurrent(form);
        }
    }
}
 

duoc_nn

N/A
Staff member
GẮN KẾT
GÂY DỰNG
Bác nghiên cứu demo hàm get date time trong gói java.util nhé:
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class DateAndTime extends MIDlet implements CommandListener{
private Display disp;
private Date d;
Calendar c = Calendar.getInstance();
String time;
private DateField currentDate;
private Command start, exit;
private Form form;
private int index;

public DateAndTime(){
form = new Form("Data and Time");
d = new Date();
start = new Command("start", Command.SCREEN, 1);
exit = new Command("Exit", Command.EXIT, 0);
currentDate = new DateField("", DateField.DATE_TIME);
currentDate.setDate(d);
}

public void startApp(){
form.append("CURRENT TIME IS: ");
index = form.append(currentDate);
form.addCommand(start);
form.addCommand(exit);
form.setCommandListener(this);
disp = Display.getDisplay(this);
disp.setCurrent(form);
}

public void pauseApp(){}

public void destroyApp(boolean uncond){}

public void commandAction(Command cmd, Displayable s){
if (cmd == exit){
notifyDestroyed();
}else if (cmd == start){
d = new Date();
c.setTime(d);
time = c.get(Calendar.HOUR_OF_DAY) + ":" +c.get(Calendar.MINUTE)
+ ":" + c.get(Calendar.SECOND);
form.append("" + time);
form.append("\n");
}
}
}
 

pian

GÂY DỰNG
Cảm ơn bác đã giúp đỡ em, nhưng có báo lỗi ở currentDate.set Date(d); bác ạ. Em ko run đc . Bác biết sao ko ạ?!
 

duoc_nn

N/A
Staff member
GẮN KẾT
GÂY DỰNG
Cảm ơn bác đã giúp đỡ em, nhưng có báo lỗi ở currentDate.set Date(d); bác ạ. Em ko run đc . Bác biết sao ko ạ?!

Bác xem lại source code khi copy nhé. Trên forum copy thì dễ gặp lỗi mà chẳng biết lý do!
View attachment DateAndTime.zip
 

Bài viết cần bạn xem thêm

Cảm ơn bạn đã thông tin.
Top