【问题标题】:working of DateFormat.getDateTimeInstance().format(date)DateFormat.getDateTimeInstance().format(date) 的工作
【发布时间】:2014-02-14 06:19:59
【问题描述】:

我对 DateFormat.getDateTimeInstance().format(date) 的工作感到困惑在我的代码中,我正在这样做:

BroadcastReceiver myReciever = new BroadcastReceiver(){
 String currentDateTimeString;
 @Override
 public void onReceive(Context context, Intent intent){
    currentDateTimeString = DateFormat.getDateTimeInstance().format(date);
    switch(prevRAT)       //somevariable
    {
        case 0:
          det1.setText(currentDateTimeString);    //det is an EditText variable
          break;
        case 1:
          det2.setText(currentDateTimeString;
          break;
        default:
          break;
    }
  }
};

下次控件进入 onReceive 函数时,currentDateTimeString 不会更新,它会显示相同的日期和时间值。我无法理解这种行为。如何获取当前时间。

【问题讨论】:

    标签: android broadcastreceiver date-format


    【解决方案1】:
    BroadcastReceiver myReciever = new BroadcastReceiver(){
     String currentDateTimeString;
     @Override
     public void onReceive(Context context, Intent intent){
        currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
        switch(prevRAT)       //somevariable
        {
            case 0:
              det1.setText(currentDateTimeString);    //det is an EditText variable
              break;
            case 1:
              det2.setText(currentDateTimeString;
              break;
            default:
              break;
        }
      }
    };
    

    【讨论】:

      【解决方案2】:

      使用 SimpleDateFormat 作为您的日期格式化程序并获取日期和时间创建一个 Calendar 实例并使用该实例检索当前时间和日期。

      BroadcastReceiver myReciever = new BroadcastReceiver(){
      
       Calendar calendar;
       String currentDateTimeString;
       SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //date & time format as you want to see
      
       @Override
       public void onReceive(Context context, Intent intent){
      
          calendar = Calendar.getInstance();
          currentDateTimeString = df.format(calendar.getTime());
      
          switch(prevRAT)    
          {
              case 0:
                det1.setText(currentDateTimeString);
                break;
              case 1:
                det2.setText(currentDateTimeString;
                break;
              default:
                break;
          }
        }
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-06
        • 2022-12-27
        • 1970-01-01
        • 2022-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多