无法在java中将字符串dd/MM/yyyy转换为Date dd/MM/yyyy

rob*_*ien 0 java date-format simpledateformat

我有一个格式的输入字符串dd/MM/yyyy,我需要将其转换为日期dd/MM/yyyy.

我的方法是:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String date = formatter.format(formatter.parse("22/09/2016"));
Date convertedDate = formatter.parse(date);
Run Code Online (Sandbox Code Playgroud)

我期待22/09/2016作为日期对象,但返回的格式不是预期的.O/P=>Mon Sep 12 00:00:00 IST 2016

知道我哪里错了吗?提前致谢!

Jon*_*eet 6

你好像假设java.util.Date"知道"一种格式.它没有.这不是它的状态的一部分 - 它只是自Unix时代以来的毫秒数.(也没有时区 - 你看到IST是你当地的时区;这只是其中的一部分Date.toString().)

基本上,a Date只是瞬间 - 当你想要一个特定的格式化值时,那就是你使用的时候SimpleDateFormat.

(或者更好,使用java.time.*...)

可以把它想象成一个数字 - 数字十六是相同的数字,无论你用二进制表示为10000,十进制表示为16,还是十六进制表示为0x10.一个int值不具有"我是一个二进制整数"或"我是一个十六进制整数"任何的概念-当你把它转换成你需要关心格式字符串这只是.日期/时间类型完全相同.