package main
import (
"fmt"
"reflect"
"strconv"
"time"
)
func main() {
a := 15 // 整數轉浮點數
b := float64(a) // go支持顯示類型轉換,以滿足嚴格的類型要求
fmt.Println(b, reflect.TypeOf(b))
c := "123456" // 字符串轉整數
d, _ := strconv.Atoi(c)
fmt.Printf("%d:%T\n",d,d)
var e string = "15.86" // 字符串轉浮點數
f, _ := strconv.ParseFloat(e,64)
fmt.Printf("%v:%T\n", f, f)
var g string = "88" // 字符串轉整數
h, _ := strconv.ParseInt(g, 10, 0)
fmt.Printf("%v:%T\n", h, h)
var o string = "111" // 2進制轉10進制
p, _ := strconv.ParseInt(o, 2, 64)
fmt.Printf("%v:%T\n", p, p)
var i string = "12" // 8進制轉10進制
j, _ := strconv.ParseInt(i, 8, 64)
fmt.Printf("%v:%T\n", j, j)
var k string = "a" // 16進制轉十進制
l, _ := strconv.ParseInt(k, 16, 0)
fmt.Printf("%v:%T\n", l, l)
var m int64 = 2 // 10進制轉2進制
n := strconv.FormatInt(m, 2)
fmt.Printf("%v:%T\n", n, n)
var q int64 = 9 // 10進制轉8進制
r := strconv.FormatInt(q, 8)
fmt.Printf("%v:%T\n", r, r)
var w int64 = 18 // 10進制轉16進制
z := strconv.FormatInt(w, 16)
fmt.Printf("%v:%T\n", z, z)
var s string = "2022-01-18 15:35:46" // 字符串轉UTC時間
t1, _ := time.Parse("2006-01-02 15:04:05", s)
fmt.Printf("%v:%T\n", t1, t1)
var s2 string = "2022-01-18 15:35:55" // 字符串轉Local時間
t2, _ := time.ParseInLocation("2006-01-02 15:04:05", s2, time.Local)
fmt.Printf("%v:%T\n", t2, t2)
t3 := time.Now() // 時間轉字符串
s3 := t3.Format("2006-01-02 15:04:05")
fmt.Printf("%v:%T\n", s3, s3)
}