是否可以通过NSLog打印NSDate对象而不打印小时,分钟,秒?我想要它记录的是这种格式yyyy-MM-dd,没有小时,分钟,秒。通过NSLog格式打印日期
我已经有了yyyy-MM-dd的NSDateFormatter,但是当我通过NSLog打印NSDate对象时,它仍然给我小时,分钟,秒钟。
有没有办法做到这一点,而不从日期对象创建另一个字符串,然后记录该字符串?
是否可以通过NSLog打印NSDate对象而不打印小时,分钟,秒?我想要它记录的是这种格式yyyy-MM-dd,没有小时,分钟,秒。通过NSLog格式打印日期
我已经有了yyyy-MM-dd的NSDateFormatter,但是当我通过NSLog打印NSDate对象时,它仍然给我小时,分钟,秒钟。
有没有办法做到这一点,而不从日期对象创建另一个字符串,然后记录该字符串?
当NSLog
遇到目标c对象(通过%@
标记)时,它调用方法-[NSObject description]
并在其位置输出结果字符串。 NSDate
该方法的执行打印小时,分钟和秒。让它以不同方式打印的唯一方法是使用NSDateFormatter
自己生成一个字符串。
我明白了。这就说得通了。所以没有其他方法可以做到这一点,而无需创建我自己的字符串。 – aresz
您可以使用NSDateFormatter生成您想要的任何格式。重点是,您必须将日期格式化为字符串,而不是简单地将格式化程序围绕NSDate进行波动,并期望更改NSDate。 –
感谢您的评论。我已经使用yyyy-MM-dd格式通过NSDateFormatter格式化了我的NSDate。但是,当我NSLog的NSDate对象,它仍然给我的小时,分钟,秒 – aresz
'NSDateFormatter'不会修改现有的NSDate'对象,也不会产生一个新的。它只是为您提供从'NSDate'生成所需格式的'NSString'的能力。所以是的,每当你想把它打印到控制台时,你都必须格式化它,或者如果日期没有改变,就保留'NSString'。 –