【问题标题】:Dates are not printing as date format in android日期未在 android 中以日期格式打印
【发布时间】:2020-07-12 15:00:56
【问题描述】:

如果我想打印这些日期应该怎么做?因为使用 System.out.println(startDate); System.out.println(endDate);给我这个输出:1595203200000 1596153600000 我想要日期作为输出

公共类 MainActivity 扩展 AppCompatActivity {

private Button bt1;
private TextView tv1;
private Long startDate;
private Long endDate;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    bt1 = findViewById(R.id.bt1);
    tv1 = findViewById(R.id.tv1);

    MaterialDatePicker.Builder<Pair<Long, Long>> builder = MaterialDatePicker.Builder.dateRangePicker();
    final MaterialDatePicker<Pair<Long,Long>> materialDatePicker = builder.build();

    bt1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            materialDatePicker.show(getSupportFragmentManager(),"date picker");
        }
    });

    /*materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
        @Override
        public void onPositiveButtonClick(Object selection) {
           tv1.setText(materialDatePicker.getHeaderText());
        }
    });*/
    materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Pair<Long, Long>>() {
        @RequiresApi(api = Build.VERSION_CODES.N)
        @Override
        public void onPositiveButtonClick(Pair<Long, Long> selection) {
           tv1.setText(materialDatePicker.getHeaderText());
            startDate = selection.first;
            endDate = selection.second;
            System.out.println("this is start date: " + startDate);
            System.out.println("this is end date " + endDate);

        }
    });

}

}

当前输出是:I/System.out:这是开始日期:1594598400000 这是结束日期 1596672000000

【问题讨论】:

    标签: android daterangepicker


    【解决方案1】:

    您只需使用DateFormatter 类。有默认格式。您只需实例化它,然后在其上调用format,传递Date

    这是文档:DateFormatter

    Android 中的日期是一个特殊的拖累,因为甲骨文和谷歌之间爆发了关于 Java 许可条款的战争。所以 Java 有一段时间没有更新,包括 Java 8,其中包括对日期和时间的完全重写。您现在可以在 Android 中使用 Java 8 日期/时间,但如果这样做,您将失去与旧操作系统的兼容性。

    这是您的代码,添加了格式化程序:

       public void onPositiveButtonClick(Pair<Long, Long> selection) {
           tv1.setText(materialDatePicker.getHeaderText());
            startDate = selection.first;
            endDate = selection.second;
            DateFormatter formatter = SimpleDateFormatter("dd-MM-yyyy", Locale.US);
            System.out.println("this is start date: " + formatter.format(startDate));
            System.out.println("this is end date " + formatter.format(endDate)));
    
        }
    

    当然你可以使用默认的语言环境。

    【讨论】:

    • 您能否分享一下代码行,因为我在编写这些代码时遇到了一些问题。
    • @priks 有例子
    猜你喜欢
    • 2014-11-29
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2013-11-10
    • 2014-09-29
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多