Textview 如何在Android中使用setText获取系统时间?
我是Android开发新手。请帮我解决这个问题 我想访问计数器中的系统时间,即Textview 如何在Android中使用setText获取系统时间?,textview,android,Textview,Android,我是Android开发新手。请帮我解决这个问题 我想访问计数器中的系统时间,即setText。至于现在,我已经使用了一些随机的日期和时间,但我想把它改为当前的日期和时间 代码如下: package countdowntimer.android; import java.util.Date; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.concurrent.TimeUnit
setText
。至于现在,我已经使用了一些随机的日期和时间,但我想把它改为当前的日期和时间
代码如下:
package countdowntimer.android;
import java.util.Date;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import android.os.CountDownTimer;
import android.os.SystemClock;
import android.app.Activity;
import android.net.ParseException;
import android.os.Bundle;
import android.provider.Settings.System;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MActivity extends Activity {
TextView day,hour,min,sec;
int iDay,iHour,iMin,iSec;
MyCount counter;
Date endDate = null;
Date startDate = null;
NumberFormat myFormat = NumberFormat.getInstance();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
day=(TextView)findViewById(R.id.day);
hour=(TextView)findViewById(R.id.hour);
min=(TextView)findViewById(R.id.min);
sec=(TextView)findViewById(R.id.sec);
myFormat.setMinimumIntegerDigits(2);
final EditText end=(EditText)findViewById(R.id.end);
final EditText start=(EditText)findViewById(R.id.start);
start.setText("2011-09-08-00:00:00");
Button btnStart=(Button)findViewById(R.id.btnstart);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
try {
try {
endDate = outputFormat.parse(end.getText().toString());
startDate=outputFormat.parse(start.getText().toString());
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
/*Toast.makeText(getBaseContext(), ex.getMessage()
,Toast.LENGTH_SHORT).show();*/
}
long diffInMis= endDate.getTime() - startDate.getTime();
if(diffInMis<0){
Toast.makeText(getBaseContext(), "Please, Enter valid Time..."
,Toast.LENGTH_SHORT).show();
}
else{
long diff = TimeUnit.MILLISECONDS.toSeconds(diffInMis);
iDay=(int) (diff/(60*60*24));
long lday= (diff%(60*60*24));
iHour=(int)(lday/3600);
long lhour= (lday%(60*60));
iMin=(int)(lhour/60);
long lmin= (lhour%(60));
iSec=(int)(lmin);
day.setText(String.valueOf(iDay).toString()+" Day ");
hour.setText(String.valueOf(myFormat.format(iHour)).toString());
min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
sec.setText(":"+String.valueOf(myFormat.format(iSec)).toString());
counter = new MyCount(iSec*1000,1000);
counter.start();}
} catch (ParseException e) {
e.printStackTrace();
} }; });
Button btnStop=(Button)findViewById(R.id.btnstop);
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
counter.cancel();
} }); }
public class MyCount extends CountDownTimer{
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
counter = new MyCount(60000,1000);
counter.start();
iMin-=1;
if(iMin>-1)
min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
else{
iMin=59;
min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
iHour-=1;
if(iHour>-1)
hour.setText(String.valueOf(myFormat.format(iHour)).toString());
else{
iHour=11;
hour.setText(String.valueOf(myFormat.format(iHour)).toString());
iDay-=1;
if(iDay>-1)
day.setText(" "+String.valueOf(iDay).toString());
else{
day.setText("Time is over");
hour.setText("");
min.setText("");
sec.setText("");
counter.cancel();
}}}}
@Override
public void onTick(long millisUntilFinished) {
sec.setText(":"+String.valueOf(myFormat.format(millisUntilFinished/1000)));
}}}
package countdowntimer.android;
导入java.util.Date;
导入java.text.NumberFormat;
导入java.text.simpleDataFormat;
导入java.util.concurrent.TimeUnit;
导入android.os.CountDownTimer;
导入android.os.SystemClock;
导入android.app.Activity;
导入android.net.ParseException;
导入android.os.Bundle;
导入android.provider.Settings.System;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
公共类活动扩展了活动{
text查看日期、小时、分钟、秒;
国际日、国际时、国际时、国际时;
计数计数器;
Date endDate=null;
日期startDate=null;
NumberFormat myFormat=NumberFormat.getInstance();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终SimpleDateFormat outputFormat=新SimpleDateFormat(“yyyy-MM-dd HH:MM:ss”);
day=(TextView)findViewById(R.id.day);
小时=(文本视图)findViewById(R.id.hour);
min=(TextView)findViewById(R.id.min);
sec=(TextView)findViewById(R.id.sec);
myFormat.setMinimumIntegerDigits(2);
final EditText end=(EditText)findViewById(R.id.end);
final EditText start=(EditText)findViewById(R.id.start);
start.setText(“2011-09-08-00:00:00”);
按钮btnStart=(按钮)findViewById(R.id.btnStart);
btnStart.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
试一试{
试一试{
endDate=outputFormat.parse(end.getText().toString());
startDate=outputFormat.parse(start.getText().toString());
}catch(java.text.parsee){
//TODO自动生成的捕捉块
/*Toast.makeText(getBaseContext(),例如getMessage())
,Toast.LENGTH_SHORT)show()*/
}
long diffInMis=endDate.getTime()-startDate.getTime();
if(diffInMis-1)
min.setText(“:”+String.valueOf(myFormat.format(iMin)).toString());
否则{
iMin=59;
min.setText(“:”+String.valueOf(myFormat.format(iMin)).toString());
iHour-=1;
如果(iHour>-1)
hour.setText(String.valueOf(myFormat.format(iHour)).toString());
否则{
iHour=11;
hour.setText(String.valueOf(myFormat.format(iHour)).toString());
iDay-=1;
如果(iDay>-1)
day.setText(“+String.valueOf(iDay.toString());
否则{
day.setText(“时间已过”);
hour.setText(“”);
min.setText(“”);
第setText节(“”);
counter.cancel();
}}}}
@凌驾
公共void onTick(长毫秒未完成){
sec.setText(“:”+String.valueOf(myFormat.format(millisuntiltfinished/1000));
}}}
您可以使用时间访问系统
Calendar.getInstance();
int hh = cal.get(Calendar.HOUR_OF_DAY);//or
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
String aux[] = sdf.format(cal.getTime()).split("/");//process the array from here
请注意,您必须
import java.util.Calendar;
您可以使用时间访问系统
Calendar.getInstance();
int hh = cal.get(Calendar.HOUR_OF_DAY);//or
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
String aux[] = sdf.format(cal.getTime()).split("/");//process the array from here
请注意,您必须
import java.util.Calendar;
thanx请求帮助,但我想修改我的start.setText(“2011-09-08-00:00:00”);以显示当前时间和日期的方式…请帮我解决这个问题..是的..实际上它是一个计时器,它自己获取系统的时间和日期,并与日期匹配,即:end date,并启动计时器=end date start date.SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);start.setText(sdf.format(Calendar.getInstance().getTime“:”+Calendar.getInstance().get(Calendar.HOUR OF the_DAY)+“:”+Calendar.getInstance().get(Calendar.MINUTES)+“:“+Calendar.getInstance().get(Calendar.SECONDS));@Tepes Lucian…..Thanx很多..先生..它奏效了..我真的很感谢你..Thanx a tob..-)如果@Tepes提供了正确的答案,你可以(也应该这样做)点击左边的绿色勾号接受帮助,但我想修改我的start.setText(“2011-09-08-00:00:00”);以显示当前时间和日期的方式…请帮我解决这个问题..是的..实际上它是一个计时器,它自己获取系统的时间和日期,并与日期匹配,即:end date,并启动计时器=end date start date.SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);start.setText(sdf.format(Calendar.getInstance().getTime“:”+Calendar.getInstance().get(Calendar.HOUR OF the_DAY)+“:”+Calendar.getInstance().get(Calendar.MINUTES)+“:“+Calendar.getInstance().get(Calendar.SECONDS));@Tepes Lucian…..Thanx很多..先生..它奏效了..我真的很感谢你..Thanx a tob..-)如果@Tepes提供了正确的答案,你可以(也应该这样做)通过单击左侧的绿色勾号接受它。