Ios 仅显示当前日期";年月日;在swift中,nsdate格式不转换为nsstring
我有db字段Ios 仅显示当前日期";年月日;在swift中,nsdate格式不转换为nsstring,ios,sqlite,swift4,Ios,Sqlite,Swift4,我有db字段NSDate格式,所以我尝试插入当前日期,但它显示如下“2018-04-18 12:19:24+0000”,但不希望该12:19:24+0000值仅“2018-04-18”这三个值。我可以在不将日期转换为字符串的情况下获取这些值吗 您可以使用日历的开始日期来剥离时间部分 要获得UTC,请创建一个自定义日历(此处为gregorian),并将时区设置为UTC var calendar = Calendar(identifier: .gregorian) calendar.timeZone
NSDate
格式,所以我尝试插入当前日期,但它显示如下“2018-04-18 12:19:24+0000”
,但不希望该12:19:24+0000
值仅“2018-04-18”
这三个值。我可以在不将日期
转换为字符串
的情况下获取这些值吗 您可以使用日历
的开始日期
来剥离时间部分
要获得UTC,请创建一个自定义日历(此处为gregorian
),并将时区设置为UTC
var calendar = Calendar(identifier: .gregorian)
calendar.timeZone = TimeZone(secondsFromGMT: 0)!
let dateWithoutTime = calendar.startOfDay(for: Date())
print(dateWithoutTime)
您可以使用NSDateFormatter。将日期转换为所需格式,然后将转换后的日期插入数据库
//Step 1: Convert the date to string
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MMM-dd HH:mm:ss Z"];
NSString *dateString = [formatter stringFromDate:datePicker.date];
//Step 2: Convert the string to date in the req format
[formatter setDateFormat:@"yyyy-MMM-dd"];
NSDate *reqDate = [formatter dateFromString:dateString];
你在使用oracle?sqlite数据库吗?他提到的没有将日期转换为字符串。您的“2018-04-18 12:19:24+0000”
的日期格式yyyy-MMM-dd HH:mm:ss
也错误。感谢@TheTiger指出错误。我理解他提到的没有转换为字符串,但他希望DB不接受日期的字符串数据类型。您的代码是2018-04-23“00:00:00+0000”,时间戳值也是,我希望与2018-04完全一样-23@senthilDate
对象永远不能像2018-04-23
那样打印完整值。它只能包含不同的组件,因此0
表示它不包含此组件。如果不将日期转换为字符串,则不可能Date
只是一个时间点(实际上是一个Double
的包装)。您可以使用DateComponents
@vadian,即使在转换为字符串后也不可能,因为他正在打印date
对象