为什么我无法控制Core-Plot日期轴刻度?

时间:2010-09-03 06:04:26

标签: cocoa nsdate core-plot

我有一个Core-Plot散点图似乎工作得很好。 x轴显示日期/时间,y轴显示0-500的值。我按如下方式设置x轴:

    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:
                        CPDecimalFromFloat(maxTime - 2*60*60*24) 
                         length:CPDecimalFromFloat(2.5*60*60*24)];
    plotSpace.globalXRange = [CPPlotRange plotRangeWithLocation:
                        CPDecimalFromFloat(minTime - 1.5*60*60*24) 
                         length:CPDecimalFromFloat(maxTime - minTime + 2*60*60*24)];

    x.majorIntervalLength = CPDecimalFromFloat(12*60*60);
    x.minorTicksPerInterval = 0;
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:@"M/d H:mm a"];
    CPTimeFormatter *timeFormatter = [[[CPTimeFormatter alloc]
                initWithDateFormatter:dateFormatter] autorelease];
    timeFormatter.referenceDate = [NSDate
                dateWithTimeIntervalSinceReferenceDate:0];
    x.labelFormatter = timeFormatter;

我的x轴点绘制如下:

-(NSNumber *)numberForPlot:(CPPlot *)plot 
                     field:(NSUInteger)fieldEnum 
               recordIndex:(NSUInteger)index 
{
    if(fieldEnum == CPScatterPlotFieldX) { 
        return [NSNumber numberWithDouble:[[(Entry *)
            [datapoints objectAtIndex:index] datetime]
            timeIntervalSinceReferenceDate]]; 
    }

据我所知,一切都在准确地绘制。但是,出于某种原因,蜱虫发生在凌晨5点和下午5点,而不是我喜欢的中午和午夜。

我已尝试所有 - 更改xRange和globalXRange的位置和长度,更改我的数据集等。但每次标签重新出现在凌晨5点和下午5点。你能帮我吗?谢谢!

1 个答案:

答案 0 :(得分:3)

5小时听起来像是时区问题。尝试将dateFormatter上的timeZone属性设置为[NSDateFormatter timeZoneForSecondsFromGMT:0]