标签: nsdate

模糊数据算法

我正在寻找模糊日期算法.我刚刚开始写一个,并意识到它是一个繁琐的任务.它迅速退化为许多可怕的代码,以应对特殊情况,如"昨天","上周"和"上个月末"之间的差异,所有这些都可以(在某些情况下)指的是同一天但是个别正确根据今天的日期.

我确信必须有一个开源模糊日期格式化器,但我找不到它.理想情况下,我喜欢使用NSDate(OSX/iPhone)及其格式化程序,但这并不困难.有没有人知道模糊日期格式化程序相对于现在采取任何时间段并返回像(但不限于)的字符串:

  • 不久前
  • 在最后五分钟
  • 今日早些时候
  • 今天早上
  • 昨晚
  • 上个星期
  • 上周三
  • 上个月初
  • 去年6月
  • 几年前

在一个理想的世界中,我希望字符串尽可能丰富(即在"刚才之前"返回随机变体,例如"just now").

澄清.我正在寻找比基本的buckts和字符串更微妙的东西.我想要一些知道"昨天"和"上周三"的东西都可以指同一时期,但只有一个是正确的,今天是星期四.

algorithm formatting date fuzzy nsdate

32
推荐指数
5
解决办法
1万
查看次数

如何在Swift中更改当天的小时和分钟?

如果我创建一个Date()获取当前日期和时间,我想从中创建一个新日期,但是使用不同的小时,分​​钟和零秒,使用Swift最简单的方法是什么?我已经找到了很多'获得'而不是'设置'的例子.

nsdate swift

32
推荐指数
2
解决办法
3万
查看次数

Swift 3.0:将服务器UTC时间转换为本地时间,反之亦然

我想将服务器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)

nsdate nsdateformatter nsdatecomponents swift

32
推荐指数
4
解决办法
5万
查看次数

如何比较目标C中的两个NSDate对象

我有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

nsdate ios

31
推荐指数
3
解决办法
4万
查看次数

如何从NSDate中减去小时数?

我想从约会中减去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)

接下来我该怎么办?

iphone objective-c nsdate

30
推荐指数
5
解决办法
3万
查看次数

NSDate完整风格但没有年份

我正在使用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中不同字母的信息.

iphone nsdate nsdateformatter

30
推荐指数
3
解决办法
6451
查看次数

截断NSDate(清零时间)

我希望生成一个新NSDate0小时,0分钟0秒的时间.源日期可以是任意的NSDate.

有没有办法实现这个目标?文档对我没有帮助.


有: 2010-10-30 10:14:13 GMT

想: 2010-10-30 00:00:00 GMT

truncate objective-c nsdate

30
推荐指数
3
解决办法
1万
查看次数

通过NSDate获取时间和日期

如何从NSDate中检索日期和时间.我想分开看他们.谢谢

iphone time date objective-c nsdate

30
推荐指数
3
解决办法
4万
查看次数

转换目标C中的日期格式

如何将以下日期"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)

iphone objective-c nsdate nsdateformatter ios

30
推荐指数
2
解决办法
6万
查看次数

NSDateFormatter"Month"用3个字母代替完整单词

    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个字母.

date monthcalendar nsdate nsdateformatter ios

29
推荐指数
4
解决办法
4万
查看次数