Source file src/time/export_test.go

     1  // Copyright 2013 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  package time
     6  
     7  import (
     8  	"sync"
     9  )
    10  
    11  func ResetLocalOnceForTest() {
    12  	localOnce = sync.Once{}
    13  	localLoc = Location{}
    14  }
    15  
    16  func ForceUSPacificForTesting() {
    17  	ResetLocalOnceForTest()
    18  	localOnce.Do(initTestingZone)
    19  }
    20  
    21  func ZoneinfoForTesting() *string {
    22  	return zoneinfo
    23  }
    24  
    25  func ResetZoneinfoForTesting() {
    26  	zoneinfo = nil
    27  	zoneinfoOnce = sync.Once{}
    28  }
    29  
    30  var (
    31  	DisablePlatformSources = disablePlatformSources
    32  	GorootZoneSource       = gorootZoneSource
    33  	ParseTimeZone          = parseTimeZone
    34  	SetMono                = (*Time).setMono
    35  	GetMono                = (*Time).mono
    36  	ErrLocation            = errLocation
    37  	ReadFile               = readFile
    38  	LoadTzinfo             = loadTzinfo
    39  	NextStdChunk           = nextStdChunk
    40  	Tzset                  = tzset
    41  	TzsetName              = tzsetName
    42  	TzsetOffset            = tzsetOffset
    43  	AsynctimerChan         = asynctimerchan
    44  )
    45  
    46  func LoadFromEmbeddedTZData(zone string) (string, error) {
    47  	return loadFromEmbeddedTZData(zone)
    48  }
    49  
    50  type RuleKind int
    51  
    52  const (
    53  	RuleJulian       = RuleKind(ruleJulian)
    54  	RuleDOY          = RuleKind(ruleDOY)
    55  	RuleMonthWeekDay = RuleKind(ruleMonthWeekDay)
    56  	UnixToInternal   = unixToInternal
    57  )
    58  
    59  type Rule struct {
    60  	Kind RuleKind
    61  	Day  int
    62  	Week int
    63  	Mon  int
    64  	Time int
    65  }
    66  
    67  func TzsetRule(s string) (Rule, string, bool) {
    68  	r, rs, ok := tzsetRule(s)
    69  	rr := Rule{
    70  		Kind: RuleKind(r.kind),
    71  		Day:  r.day,
    72  		Week: r.week,
    73  		Mon:  r.mon,
    74  		Time: r.time,
    75  	}
    76  	return rr, rs, ok
    77  }
    78  
    79  // StdChunkNames maps from nextStdChunk results to the matched strings.
    80  var StdChunkNames = map[int]string{
    81  	0:                               "",
    82  	stdLongMonth:                    "January",
    83  	stdMonth:                        "Jan",
    84  	stdNumMonth:                     "1",
    85  	stdZeroMonth:                    "01",
    86  	stdLongWeekDay:                  "Monday",
    87  	stdWeekDay:                      "Mon",
    88  	stdDay:                          "2",
    89  	stdUnderDay:                     "_2",
    90  	stdZeroDay:                      "02",
    91  	stdUnderYearDay:                 "__2",
    92  	stdZeroYearDay:                  "002",
    93  	stdHour:                         "15",
    94  	stdHour12:                       "3",
    95  	stdZeroHour12:                   "03",
    96  	stdMinute:                       "4",
    97  	stdZeroMinute:                   "04",
    98  	stdSecond:                       "5",
    99  	stdZeroSecond:                   "05",
   100  	stdLongYear:                     "2006",
   101  	stdYear:                         "06",
   102  	stdPM:                           "PM",
   103  	stdpm:                           "pm",
   104  	stdTZ:                           "MST",
   105  	stdISO8601TZ:                    "Z0700",
   106  	stdISO8601SecondsTZ:             "Z070000",
   107  	stdISO8601ShortTZ:               "Z07",
   108  	stdISO8601ColonTZ:               "Z07:00",
   109  	stdISO8601ColonSecondsTZ:        "Z07:00:00",
   110  	stdNumTZ:                        "-0700",
   111  	stdNumSecondsTz:                 "-070000",
   112  	stdNumShortTZ:                   "-07",
   113  	stdNumColonTZ:                   "-07:00",
   114  	stdNumColonSecondsTZ:            "-07:00:00",
   115  	stdFracSecond0 | 1<<stdArgShift: ".0",
   116  	stdFracSecond0 | 2<<stdArgShift: ".00",
   117  	stdFracSecond0 | 3<<stdArgShift: ".000",
   118  	stdFracSecond0 | 4<<stdArgShift: ".0000",
   119  	stdFracSecond0 | 5<<stdArgShift: ".00000",
   120  	stdFracSecond0 | 6<<stdArgShift: ".000000",
   121  	stdFracSecond0 | 7<<stdArgShift: ".0000000",
   122  	stdFracSecond0 | 8<<stdArgShift: ".00000000",
   123  	stdFracSecond0 | 9<<stdArgShift: ".000000000",
   124  	stdFracSecond9 | 1<<stdArgShift: ".9",
   125  	stdFracSecond9 | 2<<stdArgShift: ".99",
   126  	stdFracSecond9 | 3<<stdArgShift: ".999",
   127  	stdFracSecond9 | 4<<stdArgShift: ".9999",
   128  	stdFracSecond9 | 5<<stdArgShift: ".99999",
   129  	stdFracSecond9 | 6<<stdArgShift: ".999999",
   130  	stdFracSecond9 | 7<<stdArgShift: ".9999999",
   131  	stdFracSecond9 | 8<<stdArgShift: ".99999999",
   132  	stdFracSecond9 | 9<<stdArgShift: ".999999999",
   133  }
   134  
   135  var Quote = quote
   136  
   137  var AppendInt = appendInt
   138  var AppendFormatAny = Time.appendFormat
   139  var AppendFormatRFC3339 = Time.appendFormatRFC3339
   140  var ParseAny = parse
   141  var ParseRFC3339 = parseRFC3339[string]
   142  

View as plain text