Java如何将当前日期转为字符串?SimpleDateFormat输出异常如何解决?
问题原因及修复方案
- 第一个问题:你实际执行的代码未正确调用
format()方法,直接将SimpleDateFormat实例传入了setText()。setText()接收非字符串参数时会自动调用对象的toString()方法,SimpleDateFormat默认的toString实现就是输出类名@内存哈希值格式的内容,和你看到的结果完全吻合。请检查代码是否误写为textView.setText(simpleDateFormat);,替换为传入格式化后的字符串变量即可。 - 第二个问题:你写的日期格式符存在错误,小写
mm对应时间单位的分钟,大写MM才对应月份,不改的话后续即使正常输出也无法得到你要的月份值,要把格式串改为"dd.MM.yyyy"。
修正后的代码
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy"); Date date = new Date(); String data = simpleDateFormat.format(date); textView.setText(data);
额外提示
SimpleDateFormat是线程不安全的类,如果在多线程场景下使用容易出现异常,若你的应用最低支持API 26及以上,可改用java.time包下的DateTimeFormatter、LocalDate类实现相同功能,稳定性更高。
内容的提问来源于stack exchange,提问作者user16720786
相关产品推荐
相关产品推荐

