在使用SimpleDateFormat将字符串解析为日期时,我遇到了一种非常奇怪的行为.考虑以下单元测试:
@Test
public void testParse() throws ParseException
{
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String dateStr = "2012-12-21";
Date parsedDate = dateFormat.parse(dateStr);
Calendar date = Calendar.getInstance();
date.setTime(parsedDate);
Assert.assertEquals(2012, date.get(Calendar.YEAR));
Assert.assertEquals(11, date.get(Calendar.MONTH)); // yeah, Calendar sucks
Assert.assertEquals(21, date.get(Calendar.DAY_OF_MONTH));
}
Run Code Online (Sandbox Code Playgroud)
可以看出,上面的代码中有一个故意的错误:SimpleDateFormat初始化,"yyyyMMdd"但要解析的字符串是格式"yyyy-MM-dd".我希望这样的事情会导致a ParseException或者至少在正确的基础上正确解析.相反,由于一些奇怪的原因,日期被解析为2011-11-02.嗯?
这是不可接受的,因为处理输入时的一个错误会导致完全意外/毁灭性的事情.在此期间切换到JodaTime,但是理解那里出了什么问题会很好.
我遇到以下问题:组织模式具有可自定义的变量org-agenda-files.由此变量下的绝对路径列出的文件用于构建组织议程窗口.如果列表中的元素是目录,则处理.org与其匹配的所有文件org-agenda-regex以构建议程视图.另一方面,还有另一个可自定义的变量:org-directory.令人震惊的是,如果org-agenda-files未定义,则议程视图不会尝试使用下面的匹配.org文件 org-directory.此外,不接受列出相对于org-directoryin 的议程文件的路径org-agenda-files,因为它抱怨找不到文件.
我的问题是,是否有一种相当优雅的方式来利用org-directory议程文件的查找,或者使用它作为默认查找所有.org文件,或者用相对路径来描述议程文件列表org-directory?
假设您有以下类定义:
public class SomeEntity
{
public class Key
{
public virtual OtherEntity Other { get; set; }
public virtual int Index { get; set; }
public override bool Equals(object other)
{
// something here...
}
public override int GetHashCode()
{
// something here...
}
}
public virtual Key Id { get; set; }
}
public class OtherEntity
{
public virtual int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后你想要一个类似于下面的映射文件:
<class name="SomeEntity" table="SOME">
<composite-id name="Id" class="SomeEntity.Key">
<key-many-to-one name="Other" column="OTHER_ID" class="OtherEntity" />
<key-property …Run Code Online (Sandbox Code Playgroud)