如何更有效地转换和显示此NSDate?

时间:2016-02-15 07:09:38

标签: ios objective-c nsdate nsdateformatter

这是我的代码:

NSDateFormatter *df = [NSDateFormatter alloc]init];
df.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date = [df dateFromString:self.todayRecord.datetime];

self.todayRecord.datetime是一个类似于:

的字符串
2016-02-15 12:33:00

我想显示相同的日期,但没有像这样的秒:

2016-02-15 12:33

我现在想的方法是制作另一个日期格式化程序,然后格式化秒数。像这样:

df.dateFormat = @"yyyy-MM-dd HH:mm";
NSDate *date = [df dateFromString:self.todayRecord.datetime];

我做了这个,显示变为(null)。

1 个答案:

答案 0 :(得分:2)

喜欢

#include <vector>
#include <iostream>

int main()
{
    const int window_size = 4;
    std::vector<int> vals = { 3, 7, 20, 6, 12, 2, 0, 99, 5, 16 };
    std::vector<int> maximums( window_size );
    int mhead = 0, mtail = 0;

    for( int i = 1; i < vals.size(); i ++ )
    {
        // Clean out expired maximum.
        if( maximums[mhead] + window_size <= i )
        {
            int next_mhead = (mhead + 1) % window_size;
            if( mtail == mhead ) mtail = next_mhead;
            mhead = next_mhead;
        }

        if( vals[i] >= vals[ maximums[mtail] ] )
        {
            // Replace and bubble up a new maximum value.
            maximums[mtail] = i;
            while( mhead != mtail && vals[ maximums[mtail] ] >= vals[ maximums[(mtail+window_size-1)%window_size] ] )
            {
                int prev_mtail = (mtail + window_size - 1) % window_size;
                maximums[prev_mtail] = maximums[mtail];
                mtail = prev_mtail;
            }
        }
        else
        {
            // Add a new non-maximum.
            mtail = (mtail + 1) % window_size;
            maximums[mtail] = i;
        }

        // Output current maximum.
        if( i >= window_size - 1 )
        {
            std::cout << vals[ maximums[mhead] ] << " ";
        }
    }

    std::cout << std::endl;
    return 0;
}