从 iOS 相机胶卷中获取图片的时区

fli*_*p79 5 timezone exif ios alassetslibrary

我试图确定从其 EXIF 数据中读取的图片的时区(以转换以 UTC 格式拍摄的日期)。我尝试拍照,然后检查其元数据:

{
    ColorModel = RGB;
    DPIHeight = 72;
    DPIWidth = 72;
    Depth = 8;
    Orientation = 6;
    PixelHeight = 1936;
    PixelWidth = 2592;
    "{Exif}" =     {
        ApertureValue = "2.970854";
        BrightnessValue = "-2.571174";
        ColorSpace = 1;
        ComponentsConfiguration =         (
            1,
            2,
            3,
            0
        );
        DateTimeDigitized = "2012:12:13 01:21:55";
        DateTimeOriginal = "2012:12:13 01:21:55";
        ExifVersion =         (
            2,
            2,
            1
        );
        ExposureMode = 0;
        ExposureProgram = 2;
        ExposureTime = "0.06666667";
        FNumber = "2.8";
        Flash = 16;
        FlashPixVersion =         (
            1,
            0
        );
        FocalLenIn35mmFilm = 35;
        FocalLength = "3.85";
        ISOSpeedRatings =         (
            1000
        );
        MeteringMode = 5;
        PixelXDimension = 2592;
        PixelYDimension = 1936;
        SceneCaptureType = 0;
        SensingMethod = 2;
        ShutterSpeedValue = "3.9112";
        SubjectArea =         (
            1295,
            967,
            699,
            696
        );
        WhiteBalance = 0;
    };
    "{GPS}" =     {
        Altitude = "258.794";
        AltitudeRef = 0;
        ImgDirection = "24.38477";
        ImgDirectionRef = T;
        Latitude = "45.02183333333333";
        LatitudeRef = N;
        Longitude = "7.610833333333334";
        LongitudeRef = E;
        TimeStamp = "00:21:53.87";
    };
    "{TIFF}" =     {
        DateTime = "2012:12:13 01:21:55";
        Make = Apple;
        Model = "iPhone 4";
        Orientation = 6;
        ResolutionUnit = 2;
        Software = "6.0.1";
        XResolution = 72;
        YResolution = 72;
        "_YCbCrPositioning" = 1;
    };
}
Run Code Online (Sandbox Code Playgroud)

它似乎有本地时间 (DateTimeOriginal) 和 UTC 时间 ({GPS}->TimeStamp),但没有关于这两者之间偏移的迹象。我可以做一些事情来确定 DateTimeOriginal 和 TimeStamp 之间的差异,但第二个没有日期,所以如果它们跨越两个不同的日子似乎很棘手。

有没有办法获得完整的 UTC 日期或带时区的本地时间?

我还想从纬度/经度数据确定时区,但这似乎也很复杂,因为它涉及使用外部服务从坐标中获取国家/地区。

rdu*_*and 2

我认为你最好的办法是使用网络服务。我认为你不能从中得到任何东西。

\n\n

如果您选择此选项,请查看Earthtools。我听说它可能会遭受时间偏移(虽然我没有看到),但你不会关心,因为你想要的只是时区。

\n\n

它非常容易使用,例如,如果您想要法国巴黎的时区(坐标 48\xc2\xb051\'44\'N 2\xc2\xb021\'03E),您可以调用此页面:http ://www.earthtools.org/timezone-1.1/40.71417/2.2103,你会得到这个xml文件:

\n\n
<timezone xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.earthtools.org/timezone.xsd">\n    <version>1.0</version>\n    <location>\n        <latitude>40.71417</latitude>\n        <longitude>2.2103</longitude>\n    </location>\n    <offset>1</offset>\n    <suffix>A</suffix>\n    <localtime>13 Dec 2012 09:57:58</localtime>\n    <isotime>2012-12-13 09:57:58 +0100</isotime>\n    <utctime>2012-12-13 08:57:58</utctime>\n    <dst>False</dst>\n</timezone>\n
Run Code Online (Sandbox Code Playgroud)\n