【问题标题】:Android studio - Textview show dateAndroid 工作室 - Textview 显示日期
【发布时间】:2017-03-11 16:22:30
【问题描述】:

我已经阅读了很多关于此的帖子,但我无法让它发挥作用。 我需要一个 textView (id - datumprikaz) 来显示当前日期,如下所示:28.11.2016。

我已经设法在我的 java 中使用此方法添加日期:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView dateView = (TextView)findViewById(R.id.datumprikaz);
    setDate(dateView);

}

public void setDate (TextView view){
    String str = String.format("%tc", new Date());
    view.setText(str);
}

问题是我得到的结果是:Fri Oct 28 19:57:37 GMT

我只需要它显示当前日期,例如 28.11.2016。

我该怎么做?

我尝试了另一种方法

    String trenutniDatum = DateFormat.getDateTimeInstance().format(new Date());
    datumprikaz textView = (datumprikaz) findViewById(R.id.datumprikaz);
    datumprikaz.setText(trenutniDatum);

但是 setText 是红色的,不起作用。

我如何得到这个? 28.11.2016 在 ID 为 datumprikaz 的 textView 中

【问题讨论】:

    标签: java android textview android-date


    【解决方案1】:

    您需要的只是自定义您的日期。这里是您的 setDate 方法的简单解决方案。

    public void setDate (TextView view){
    
        Date today = Calendar.getInstance().getTime();//getting date
        SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");//formating according to my need
        String date = formatter.format(today);
        view.setText(date);
    }
    

    您可以用许多不同的方式来格式化日期。以下是一些最常见的自定义日期格式。

    yyyy-MM-dd 结果在 2009-09-06

    yyyyMMdd 结果为 20090906

    EEE MMM dd hh:mm:ss yyyy 结果在 Sun Sep 06 08:32:51 2009

    希望这会有所帮助。

    【讨论】:

    • TextView datumprikaz = (TextView)findViewById(R.id.datumprikaz); Date danas = new Date();//这会创建一个日期来表示这个实例的时间。 SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");字符串 novDatum = sdf.format(danas); datumprikaz.setText(novDatum);成功了,谢谢!
    【解决方案2】:

    内置的TextClock非常方便显示格式化的日期/时间信息,无需关注不断更新TextView的内容。

    <android.widget.TextClock
        android:id="@+id/datumprikaz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:format12Hour="dd.MM.yyyy"
        android:format24Hour="@null"
        />
    

    【讨论】:

      【解决方案3】:

      您可以使用 SimpleDateFormat

      TextView textView = (TextView)findViewById(R.id.datumprikaz);
      SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy", Locale.getDefault());
      textView.setText(dateFormatter.format(trenutniDatum));
      

      【讨论】:

      • 我用 textView 绑定更新了我的答案。你可以检查一下。
      • 太棒了,现在它显示正确的日期,但问题是日期是:25.01.1970 出于某种原因。
      • 如果你想显示当前时间,你应该使用System.currentTimeInMillis()函数。
      【解决方案4】:

      试试这个

      public void setDate (TextView view) {
      String str = new SimpleDateFormat("dd.MM.yyyy", Locale.getDefault()).format(new Date());
      view.setText(str); }
      

      【讨论】:

        【解决方案5】:

        SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。它允许格式化(日期 → 文本)、解析(文本 → 日期)和规范化。

        示例:

        import java.text.SimpleDateFormat;
        
        import java.util.Calendar;
        
        ///
        
        Calendar calendar;
        
        calendar = Calendar.getInstance();
        
        /////
        
        SimpleDateFormat simpleDateFormat;
        
        simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss aaa z");
        
        // For your case : simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");
        
        ////
        
        String dateTime;
        
        dateTime = simpleDateFormat.format(calendar.getTime()).toString();
            
           
        

        【讨论】:

          猜你喜欢
          • 2022-11-11
          • 2016-06-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-16
          • 1970-01-01
          • 1970-01-01
          • 2014-03-28
          相关资源
          最近更新 更多