github.com/flyinox/gosm@v0.0.0-20171117061539-16768cb62077/src/time/zoneinfo_ios.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build darwin
     6  // +build arm arm64
     7  
     8  package time
     9  
    10  import "syscall"
    11  
    12  var zoneFile string
    13  
    14  func init() {
    15  	wd, err := syscall.Getwd()
    16  	if err != nil {
    17  		return
    18  	}
    19  
    20  	// The working directory at initialization is the root of the
    21  	// app bundle: "/private/.../bundlename.app". That's where we
    22  	// keep zoneinfo.zip.
    23  	zoneFile = wd + "/zoneinfo.zip"
    24  }
    25  
    26  func forceZipFileForTesting(zipOnly bool) {
    27  	// On iOS we only have the zip file.
    28  }
    29  
    30  func initTestingZone() {
    31  	z, err := loadZoneFile(zoneFile, "America/Los_Angeles")
    32  	if err != nil {
    33  		panic("cannot load America/Los_Angeles for testing: " + err.Error())
    34  	}
    35  	z.name = "Local"
    36  	localLoc = *z
    37  }
    38  
    39  func initLocal() {
    40  	// TODO(crawshaw): [NSTimeZone localTimeZone]
    41  	localLoc = *UTC
    42  }
    43  
    44  func loadLocation(name string) (*Location, error) {
    45  	z, err := loadZoneFile(zoneFile, name)
    46  	if err != nil {
    47  		return nil, err
    48  	}
    49  	z.name = name
    50  	return z, nil
    51  }