小编And*_*ner的帖子

yyyy的Java SimpleDateFormat格式问题

我在使用formatSimpleDateFormat对象的方法时遇到问题.

有问题的代码是:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(date);
Run Code Online (Sandbox Code Playgroud)

其中"date"是使用Calendar.getTimeInMillis()中的long int创建的Date对象;

Calendar cal = Calendar.getInstance();
Date date = new Date(cal.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)

一切都工作正常,除了字符串的年份部分.当我传递日期时,输出的字符串如下所示:

0044-09-10 05:30:24 
Run Code Online (Sandbox Code Playgroud)

传递的日期对象是从返回的长整数创建的:

Calendar.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)

我相信从这个方法返回的数字是从1月1日开始的毫秒数.1970年,我认为是问题所在,但即使我在1970年增加了毫秒数(大声笑,可能是错误的事情,但值得一试:P),它仍然在0044中解析年份.

我已经做了很多谷歌搜索,所有似乎都指向传递给SimpleDateFormat构造函数的字符串中的简单问题,所以我在这里不知所措.

任何帮助是极大的赞赏.

如果需要任何其他信息,请告诉我,我会尽力提供.

再次感谢!

编辑:

我想我会更多地解释一下背景:

技术人员将进行呼叫,并在到达站点时将呼叫标记为"已启动".然后,应用程序将创建一个Calendar实例并保存从中返回的long int Calendar.getTimeInMillis().

当技术人员完成呼叫时,他/她将呼叫标记为"完成".同样,Calendar创建一个实例并Calendar.getTimeInMillis()保存返回的long int .

这允许简单的"呼叫持续时间"计算.

现在,当使用技术人员在应用程序中使用的结束表单时,在调用期间保存的长整数将传递给Date对象,然后将其传递给SimpleDateFormat.format()方法.

这就是问题出现的地方.再次感谢,希望这有帮助.

java simpledateformat

4
推荐指数
1
解决办法
1880
查看次数

标签 统计

java ×1

simpledateformat ×1