我刚写了这段代码。 它应该标记其日期列过去的行。
这是代码:
import javax.naming.*;
import javax.naming.ldap.*;
import javax.naming.directory.*;
public class Ldap
{
public static void main(String[]args)
{
Hashtable<String, String> environment = new Hashtable<String, String>();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.PROVIDER_URL, "ldap://<hostname>:389");
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
environment.put(Context.SECURITY_PRINCIPAL, "<Login DN>");
environment.put(Context.SECURITY_CREDENTIALS, "<password>");
try
{
DirContext context = new InitialDirContext(environment);
System.out.println("Connected..");
System.out.println(context.getEnvironment());
context.close();
}
catch (AuthenticationNotSupportedException exception)
{
System.out.println("The authentication is not supported by the server");
}
catch (AuthenticationException exception)
{
System.out.println("Incorrect password or username");
}
catch (NamingException exception)
{
System.out.println("Error when trying to create the context");
}
}
}
我的应用有:
<tr ng-repeat="row in records | orderBy: sortType : sortReverse" ng-class="{past_date:(date | date:'y M d') > (row.oddate | date:'y M d')}">
<td>{{ $index +1 }}</td>
<td>{{row.pname + " " + row.sname}}</td>
<td>{{row.areaname}}</td>
<td>{{row.oddate}}</td>
<td>{{row.odtime}}</td>
<td>{{row.cnt}}</td>
</tr>
每件事情都很好(过去的行被标记了)但是其他一些行也被标记了! (2017年6月5日之前标记 - 好,06/06/2017 - 08/06/2017未标记 - 好,11/06 / 2017-29 / 06/2017标记 - 问题!,02/07/2017及以上没有标记 - 好)。
我检查并且所有日期都很好。
可能是什么问题?
谢谢!
答案 0 :(得分:2)
问题发生是因为字符串比较“5”&gt; “11”
您将日期投放到y M d
,因此“2017 5 1”将被评估为大于“2017 11 1”
解决方案:使用零填充格式yMMdd