forked from toolshed/abra
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package internal
 | ||
| 
 | ||
| import "time"
 | ||
| 
 | ||
| // Timezones used for local datetime, date, and time TOML types.
 | ||
| //
 | ||
| // The exact way times and dates without a timezone should be interpreted is not
 | ||
| // well-defined in the TOML specification and left to the implementation. These
 | ||
| // defaults to current local timezone offset of the computer, but this can be
 | ||
| // changed by changing these variables before decoding.
 | ||
| //
 | ||
| // TODO:
 | ||
| // Ideally we'd like to offer people the ability to configure the used timezone
 | ||
| // by setting Decoder.Timezone and Encoder.Timezone; however, this is a bit
 | ||
| // tricky: the reason we use three different variables for this is to support
 | ||
| // round-tripping – without these specific TZ names we wouldn't know which
 | ||
| // format to use.
 | ||
| //
 | ||
| // There isn't a good way to encode this right now though, and passing this sort
 | ||
| // of information also ties in to various related issues such as string format
 | ||
| // encoding, encoding of comments, etc.
 | ||
| //
 | ||
| // So, for the time being, just put this in internal until we can write a good
 | ||
| // comprehensive API for doing all of this.
 | ||
| //
 | ||
| // The reason they're exported is because they're referred from in e.g.
 | ||
| // internal/tag.
 | ||
| //
 | ||
| // Note that this behaviour is valid according to the TOML spec as the exact
 | ||
| // behaviour is left up to implementations.
 | ||
| var (
 | ||
| 	localOffset   = func() int { _, o := time.Now().Zone(); return o }()
 | ||
| 	LocalDatetime = time.FixedZone("datetime-local", localOffset)
 | ||
| 	LocalDate     = time.FixedZone("date-local", localOffset)
 | ||
| 	LocalTime     = time.FixedZone("time-local", localOffset)
 | ||
| )
 |