【问题标题】:how to add time in current time?如何在当前时间添加时间?
【发布时间】:2012-08-04 13:23:30
【问题描述】:

当我运行程序时,系统当前时间显示在文本视图中。 现在我有一个按钮、一个edittext 和一个textview。 我想当我在edittext上放40时,我按当前小时秒数计算,然后通过在textview上按下按钮来显示它。 当我从edittext中获取它时,我只想计算当前的小时秒数。 如您所知,当当前小时秒以数字计算时,它也会影响分钟和小时

请帮帮我 此代码显示当前时间:

    Thread myThread = null;
    Runnable runnable = new CountDownRunner();
    myThread= new Thread(runnable);   
    myThread.start();
}
public void doWork() {
    runOnUiThread(new Runnable() {
        public void run() {
            try{    
               txtCurrentTime= (TextView)findViewById(R.id.lbltime);
                    Date dt = new Date();
                    int hours = dt.getHours();
                    int minutes = dt.getMinutes();
                    int seconds = dt.getSeconds();
                    String curTime = hours + ":" + minutes + ":" + seconds;
                    txtCurrentTime.setText(curTime);

【问题讨论】:

  • 这个不是很清楚。你想做什么,有什么问题?
  • 是的,在点击时清除它你想要做什么。
  • 40 的单位是什么?它在第二?您想在当前时间中添加 40 秒吗?如果我理解你是正确的,这是你的解决方案Date dt = new Date(); long newTime =dt.getTime()+(40)/1000; Date newData=new Date(newTime);
  • 我想用一个编辑文本和一个按钮和一个文本视图添加到当前时间。此代码显示当前时间。
  • 在编辑文本的时候会怎样输入?几秒,几小时?在newData你会得到40 seconds的增量时间

标签: android timestamp


【解决方案1】:

当前时间:

                txtCurrentTime= (TextView)findViewById(R.id.txtcurrunt);
                Date dt = new Date();
                int hours = dt.getHours();
                int minutes = dt.getMinutes();
                int seconds = dt.getSeconds();
                String curTime = hours + ":" + minutes + ":" + seconds;
                txtCurrentTime.setText(curTime);

用户输入:

                userInput=(EditText)findViewById(R.id.userInputInSeconds);
                String userInput=userInput.getText().toString();
                long increment=Long.parseLong(userInput);
//New Time
              Date dt = new Date();
              long newTime =dt.getTime()+(increment)/1000;
              Date newData=new Date(newTime);
              int hours = newData.getHours();
              int minutes = newData.getMinutes();
              int seconds = newData.getSeconds();
              String newTimeString = hours + ":" + minutes + ":" + seconds;

              txtNewTime= (TextView)findViewById(R.id.txtNew);
              txtNewTime.setText(newTimeString);

希望对你有帮助...:)

【讨论】:

  • 非常感谢。 userInput=(EditText)findViewById(R.id.userInputInSeconds);字符串 userInput=userInput.getText().toString();我不知道你是什么意思?
  • @M Mohsin Naeem 我认为你没有运行代码有很多错误我认为你应该在发布答案之前运行它 1ce
  • 嗨,请告诉我如果我想在给定时间减少时间,那么我该怎么办?
【解决方案2】:

使用日历。您可以更轻松地处理当前时间的秒数。

int seconds=Integer.parseInt(mTextView.getText()); // get textview's value (in integer)

Calendar cal=Calendar.getInstance();

int hours = cal.get(Calendar.HOUR_OF_DAY);
int minutes = cal.get(Calendar.MINUTE);
int seconds = cal.get(Calendar.SECOND);
String currentTimeString = String.format("%1$tH:%1$tM:%1$tS",cal);//24-hour format : HH:MM:SS

cal.add(Calendar.SECOND,seconds);
String newTimeString = String.format("%1$tH:%1$tM:%1$tS",cal);//24-hour format : HH:MM:SS

更多日期格式:访问http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多