我正在寻找模糊日期算法.我刚刚开始写一个,并意识到它是一个繁琐的任务.它迅速退化为许多可怕的代码,以应对特殊情况,如"昨天","上周"和"上个月末"之间的差异,所有这些都可以(在某些情况下)指的是同一天但是个别正确根据今天的日期.
我确信必须有一个开源模糊日期格式化器,但我找不到它.理想情况下,我喜欢使用NSDate(OSX/iPhone)及其格式化程序,但这并不困难.有没有人知道模糊日期格式化程序相对于现在采取任何时间段并返回像(但不限于)的字符串:
在一个理想的世界中,我希望字符串尽可能丰富(即在"刚才之前"返回随机变体,例如"just now").
澄清.我正在寻找比基本的buckts和字符串更微妙的东西.我想要一些知道"昨天"和"上周三"的东西都可以指同一时期,但只有一个是正确的,今天是星期四.
如果我创建一个Date()获取当前日期和时间,我想从中创建一个新日期,但是使用不同的小时,分钟和零秒,使用Swift最简单的方法是什么?我已经找到了很多'获得'而不是'设置'的例子.
我想将服务器UTC时间转换为本地时间,反之亦然.这是我的代码..
var isTimeFromServer = true
var time:String!
var period:String!
let timeString = "6:59 AM" //Current UTC time
if isTimeFromServer {
let index = timeString.index(timeString.startIndex, offsetBy: 5)
let twelve = timeString.substring(to: index)
var dateString:String!
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm"
let date12 = dateFormatter.date(from: twelve)!
dateFormatter.dateFormat = "h:mm a"
let date22 = dateFormatter.string(from: date12)
//print(date22)
dateString = date22
//print("dateString=\(dateString)")
time = dateString.components(separatedBy: " ")[0]
period = dateString.components(separatedBy: " ")[1]
}
else {
time = timeString.components(separatedBy: " ")[0]
period = timeString.components(separatedBy: …Run Code Online (Sandbox Code Playgroud) 我有Date类型的对象..
所以我想比较它们,我在下面的方法中写了一个if条件
if (([startDate1 isEqualToDate:[self getDefaultDate]]) || (startDate1 != [ self getDefaultDate] && m_selectedDate >= m_currentDate1 && cycleStopped))
{
///execute some condition
}
Run Code Online (Sandbox Code Playgroud)
所以无论我是对还是错......这种做法?
是否以这种方式纠正是正确的
if (dtdate > [m_array objectatIndex:i]
{
}
Run Code Online (Sandbox Code Playgroud)
因为我得到一个随机的行为..
所以请帮助我的朋友和极客
问候Ranjit
我想从约会中减去4个小时.我将日期字符串读入NSDate对象使用以下代码:
NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate * mydate = [dateFormatter dateFromString:[dict objectForKey:@"published"]];
Run Code Online (Sandbox Code Playgroud)
接下来我该怎么办?
我正在使用Objective C for iPhone并拥有一个NSDate,我希望以完整的风格显示但没有年份.现在我正在使用下面的代码,但它也显示了年份,我不希望这样.由于我想以正确的地区格式显示日期,我不能只删除最后一年,因为在某些国家,年份不会在最后,而是在中间或开始.
NSDate *testdate = [NSDate date];
NSDateFormatter *dateFormattertest = [[NSDateFormatter alloc] init];
[dateFormattertest setDateStyle:NSDateFormatterFullStyle];
[dateFormattertest setTimeStyle:NSDateFormatterNoStyle];
NSString *formattedDateString = [dateFormattertest stringFromDate:testdate];
NSLog(formattedDateString);
In US this give me:
Thursday, January 14, 2010
In Sweden this give me:
torsdag, 2010 januari 14
Run Code Online (Sandbox Code Playgroud)
这是什么解决方案?另一个问题,我在哪里可以找到有关如何使用NSDateFormatter的setDateFormat的信息?我无法找到有关API中不同字母的信息.
我希望生成一个新NSDate的0小时,0分钟和0秒的时间.源日期可以是任意的NSDate.
有没有办法实现这个目标?文档对我没有帮助.
例
有: 2010-10-30 10:14:13 GMT
想: 2010-10-30 00:00:00 GMT
如何从NSDate中检索日期和时间.我想分开看他们.谢谢
如何将以下日期"Sun Jul 17 07:48:34 +0000 2011"转换为以下格式"2011-07-17 07:48:34"?
我使用NSDateFormatter如下所示,但它没有工作.结果是null.
NSDateFormatter *objDateFormatter = [[NSDateFormatter alloc] init];
[objDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[objDateFormatter dateFromString:sDate];
Run Code Online (Sandbox Code Playgroud) NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-YYYY HH:mm"];
[formatter setTimeZone:[NSTimeZone systemTimeZone]];
Run Code Online (Sandbox Code Playgroud)
如果我选择"MM",我会得到月份的数字:"09-05-2012 15:33"如果我选择"MMMM"我会得到一个月的字:"09-May-2012 15:33"
我想要的是3个字母缩写中的月份.
例如:"1月"将是"1月"
在这种情况下,May是正确的,因为它只有3个字母.