我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
我正在努力从Active Directory中获取日期值(createWhen),并将其转换为Java日期,以获取在两个日期之间创建的帐户列表.一切都工作正常,除了一种方法:从AD日期到Java日期的方法.该方法如下所示:
private Date getParsedDate(String givenString) {
System.out.println("Value from AD is: " + givenString);
Date parsedDate = null;
String formattedString = this.formatDateString(givenString);
System.out.println("Formatted String is: " + formattedString);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");
try {
parsedDate = sdf.parse(formattedString);
System.out.println("Final date string is: " + parsedDate.toString());
} catch (ParseException ex) {
ex.printStackTrace();
}
return parsedDate;
}
Run Code Online (Sandbox Code Playgroud)
并且,对于来自AD的单个任意数据:
Value from AD is: 20050912190509.0Z
Formatted String is: 2005/09/12
Final date string is: Wed Jan 12 00:00:00 EST 2005
显然,它正确地提取了日期和年份(如果我选择包括小时/分钟/秒,它也包括正确的那些),但是由于某种原因,每个日期都在1月份.
现在,我确定我的错误是一个非常简单的错误,但我已经重新检查了我的格式十次,而我正处于我再也看不到它的地步.第二双眼睛是否可以查看我的代码并指出我错误的地方让这个月变得非常不正确?
谢谢.
我有一个跟随字符串,我必须拆分并在某些条件下用"/"替换**
String date = "20131105";
Run Code Online (Sandbox Code Playgroud)
我想将这些字符串更改为"2013/11/05"
编辑:
我的意思是变量日期必须是String not Date数据类型
我必须以String自定义格式"dd.MM.yyyy, HH:mm:ss"互相检查2个日期.我怎样才能得到旧的?
例如 :
String date1 = "05.02.2013, 13:38:14";
String date2 = "05.02.2013, 09:38:14";
Run Code Online (Sandbox Code Playgroud)
有没有办法date2比较?