2

我在字符串类型中有以下值 /Date(1234043600000)/,我需要将其转换为 java 日历类型但没有成功,我尝试使用以下帖子并创建日期,而不是执行类似帖子的操作

如何格式化 Microsoft JSON 日期?

Date date = new Date(parseInt(jsonDate.substr(6))); 

and than do someting like

Calendar cal = Calendar.getInstance();
cal.setTime(date);

我在第一行出现错误,因为在单词 date 中我在中间有一行并且substr(6) 有错误(方法 substr(int) 未定义为 String 类型),我应该如何继续。

谢谢!

4

2 回答 2

3

这应该在Java中工作

Date date = new Date(Long.parseLong(jsonDate.replaceAll(".*?(\\d+).*", "$1")));

你的例子的问题是它只对javascript有用

于 2013-08-08T08:27:06.177 回答
2

获取号码的最简单方法是使用

Long dateInMiliSeconds = new Scanner(jsonDate).nextLong();
Date date = new Date(dateInMiliSeconds);
Calendar cal = Calendar.getInstance();
cal.setTime(date);

另外,您的编译错误的原因是在 Java 类中获取子字符串的方法String被称为subStringnot substr

尽管如果您不太了解正则表达式,则使用扫描仪会更干净,但 Evgeniy 的答案可能会更好地提高性能。我不知道这两种方法的性能差异。

于 2013-08-08T08:59:27.593 回答