zin*_*995 2 time android date simpledateformat
我发现这给出了错误的日期。但我怎么解决不了。请有人帮助我。我是android开发的新手。提前致谢;
字符串时间戳=“1538970640”;
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM 'at' hh:mm a z" );
String dateString = formatter.format(new Date(Long.parseLong(timestamp)));
Run Code Online (Sandbox Code Playgroud)
这将返回:
19 Jan at 01:29 AM GMT+06:oo
Run Code Online (Sandbox Code Playgroud)
但应该是:
8 Oct at 9:50 AM GMT+06:00
Run Code Online (Sandbox Code Playgroud)
构造函数java.util.Date接受自纪元以来的毫秒数,而不是秒:
分配一个 Date 对象并将其初始化为表示自称为“纪元”的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来指定的毫秒数。
以下使用 ms 的代码正在运行:
String timestamp = "1538970640000"; // use ms NOT s
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM 'at' hh:mm a z" );
String dateString = formatter.format(new Date(Long.parseLong(timestamp)));
08 Oct at 05:50 AM CEST
Run Code Online (Sandbox Code Playgroud)
您面临的部分问题是您的日期格式省略了年份部分,实际上是 1970 年。