From 98b3bda53d3fc275b426be6a3a760ab388460709 Mon Sep 17 00:00:00 2001 From: xxmNIE <724931324@qq.com> Date: Fri, 11 Jun 2021 19:22:29 +0800 Subject: [PATCH 1/4] 1-3 --- chap-28-Dates-and-time/28.md | 66 ++++++++++++++++++ chap-28-Dates-and-time/imags/dates-time1.jpg | Bin 0 -> 25848 bytes .../imags/time_fmt.b1d79b88.png | Bin 0 -> 46685 bytes 3 files changed, 66 insertions(+) create mode 100644 chap-28-Dates-and-time/28.md create mode 100644 chap-28-Dates-and-time/imags/dates-time1.jpg create mode 100644 chap-28-Dates-and-time/imags/time_fmt.b1d79b88.png diff --git a/chap-28-Dates-and-time/28.md b/chap-28-Dates-and-time/28.md new file mode 100644 index 0000000..50a0e42 --- /dev/null +++ b/chap-28-Dates-and-time/28.md @@ -0,0 +1,66 @@ +# 第 28 章:日期和时间 + +![](imgs/dates-time1.jpg) + +## 1 你将在本章中学到什么? + +- 什么是世界标准时间? +- 如何获取当前时间? +- 如何解析时间? +- 如何使用特定布局格式化时间? +- 如何比较两个时间点? +- 如何将分钟,天,年,秒添加到时间? +- 什么是wall clock? +- 什么是monotonic clock? + +## 2 涉及到的技术点 +- 时区 + +- 时间偏移 + +- 世界标准时间 + +- Wall clock + +- Monotonic clock + +- Unix Epoch + +## 3 如何得到当前时间 + +在许多情况下,您需要有当前的日期和时间。要获当前时间信息,您可以调用函数 time.Now()。 +``` +// dates-and-time/main.go + +package main + +import ( + "fmt" + "time" +) + +func main() { + now := time.Now() + fmt.Printf("%s", now) +} + +``` +我们调用 time.Now() 然后打印结果。time.Now() 返回一个 time.Time 类型的变量。上述脚本的输出为: + +```2019-02-12 13:13:55.429243 +0100 CET m=+0.000329111``` + +![](imgs/time_fmt.b1d79b88.png) +fmt.Print[fig:Time-outputed-by]返回的时间 +在上图,您可以看到输出的不同部分的含义。 + +你可以看到你获得了日期和时间。同样,你还获得时区信息。 + +时间偏移。这意味着当前显示的时间是世界标准时间 (UTC) + 01 小时 00 分钟。这个时间偏移通常被命名为 UTC+01:00 + +CET 表示中欧时间。这是UTC+01:00时间偏移的另一个名称 + +时区是人与人之间交流时间的重要元素。如果您正在开发API并在字段中输出时间,则必须告诉您的用户您使用的是哪个时区。例如,巴西的“13:13:55”和斯德哥尔摩的“13:13:55”不是指同一时间点,根本不是! + +```2009-11-10 23:00:00 +0000 UTC m=+0.000000001``` + +这是 time.Now() 的另一个输出结果。 您可以看到这里的时区是不同的。此处显示的时间是协调世界时 (UTC)。 diff --git a/chap-28-Dates-and-time/imags/dates-time1.jpg b/chap-28-Dates-and-time/imags/dates-time1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c75fe978113c71da835927659763616508a7431f GIT binary patch literal 25848 zcma&N2S8KJvp9M{Y*-Kw0g)md5khZL6cj`Rq)SUaKtKqg_iCjVsi8@fDmBs)YEUVm z^8rHW2%-1hLU{+j^1Ju_@Bh9xkUe|$?AbCqJ2N{o=Vahy0$_OLX=4Qds;YN@3&4Ni zWC@^t=w<=;0>}UguviuVPA1OWdgB?qqX>DUK$G%!!$IfQ+LXO=)TwO@rQOWY9&0}w8OC4_wT?=oxh4c${1$j1E zPZ>{yBf`?vjLj2aXYV58DaZc1aTzdwS`1-l`(4EqF30}hv{$z0>d)Ae9GorLBm{*7 zEQEwa*(9X}g(bwqMI`UCi3o`ZL4?77aRFgT88ImtQ4zMkfgSA4`Gu8?_Cw{r`vULe z*#DlChlhuthp3=~vo%CmT3Q++Bmxl;5ddolxOmySnt2M?yKwx|!b3|J3uhZgR~rX= zw$m2P%pKfZ<=DZI{xt=Jqq_RP4gZhWLLg4(^}Du3+G%^nzEZh*5_O7ZA<=DXz!520!WF9I%kXDvZQkD`^loA$x zq$u@3Na*1s=||$yl0u4-B8vaKt7`A!YG!X?`OmvH|9SV(|N5?slC!0mtAn$ygM-~a ztM}}sgR6tfO9#i(r4nXSH?y#@KP@=L?cYPSbhdG~e4*^@fMENL92uMcG5{q-$wv<) zq?Dx}C@Vd9AfYTQE&NdGk+P(ekc9LjF%c#9zu$TBUnczj`3?l^9CEsn|7B(WDFVsm zH2W`|f;azCx}`lx-p(K$pR52^e^V#$;v2YM$WDfVcfdIc3W~E7=gyuzckvwfyL92) zxeJ#rQ&L`{q`Z9X@^83y`6|^ls;if2X|G?WrM<<(#B_`GUm!bw{`{58R~W8cW4K92 zO?UI(2mgOFC*J_-3uNWw?q|rT0di`xGt^`!4Zv4`j0_+@11A3h8Tq+06lc$0_&**1 zWM|J%oFhMf4In2cCnKjg15O5<)p>A=Aq{5 zJ9CJ3ze(quh*1*zq4V&@dWnS#7dJgM*ef~N8S*pdz!u5Qo}!7I`V7Tw;j<5Dw9G`D zUPrUjo&#IBzScdVZO-vs)Or0)4Bd^BA>i^E@Kx$F)PMqTB=Z=!NPg|#kpn{i$^MnQ z4qOBO0N!iBb>Q;p98Y@!J^k@*MX+Pw10`6AhD;IQ1=vn2{9k~Qg8c6m zzzSd%p!{8t3?RD?wgv#4^7?m6zlR0l;CD+jU>O

@=rZ-fczCWqu&hswCn?*`0Af$|I_ufj|&tn>{I9N zzj)OQ;sG4peJ~+^_ZqkcHVxv3j171NmYf17Ifckyx&Ju@Tcc>c{5tY}5~s-7W_mV} zGn|xXn=ilmtM+HMYry@pe+})!>7-BLB0zE4>Hih30o1R7h}Sc#K0%>9vF{0jdwW0R z42#iWK0AS!F{>&MWKi+J+pP1UZnM_;h(}Cr>j~Sb{5xLBD!q)}CLUFLg@buNkK-e( zF`jDjA&C-eXpP!oZ`r`w*vOupSmg{aXMpl7*#|*z`XJ^&07v%w3T8Pk0I!~%mH{9c z{dYJetbgG?aGxUF@QnJdN|iuFl#a4zc)&=pCw9%Ujw*;@*HC53Ym+r5LU3^y(Sqe! zK-kUbz#efn7WSK5T}fm1=T6=Cj9lA3plQwj+8b7HsfB>+T>meGo~|PZ zzp3TlF`wf9(?540{eesMis7q_Z2#_*=kSh9gF;6wYU!(~^j!}CJ>;#JT|b;Nzl?zXlUis{MXuD(o_tpD~9_QygdQDz9fBLBW& z@L=c&;}l=BP*=rjFzH3PyLD$MNMm~wqB5gvPY|o=8+6)fYJHT^H~O@xwUT@aoXRQ5 zaRPKgz~5{3_w4?jKE;>&|4jG)xGG;GmJBT#rp72*UkpxK`el63lW;vsA=jX?@1^_o zSVK+zpF2%oxB!COTISyS_i+X42TZtoCxG=x!A7xY?q*6F$FJv`C%|@FQs%Z#+GwbE ziR!j>hwS^D@gzU0Z{}i^Wfe!E5=$l8EAL8!P`3^;t{!dG3NI{3Iuzz!`!&0Bo6;Y( zDUT}KCc1X)JXC3H-|u{6lV@&p;Q8ENKIdnJNkDI=%C06G#s3d10D$=q7W&&S zvWf*~d*o=u-8C%h(kt@wXOD6Mt#ca!_cJgHTBxo#5f%$P zG$2@hIRjnG?$SZe1QuoV&&b@pk!oVormiQaD99) zseMDzKWk&fGc}-xKv*V0K`uvuv-{}T@L|`{N*Pzt_;E@@45{JIQIdVyc#F-h z@9<9KanVkhyLfg%p8u7Aa~94iWiY*LOt@MJ!z*6JDax~KCa?a3_s776YoEYd8j#)o zrxf^`MgCJ_{wIq8M~+45LVpP=R0xqdD>T%N5e{+vTZF+ay?b6A^xQG>qh)s_Vzt_lxQO3w+R*!d6 zZkfl0G+MBZpf_VF^PVfSl8zERJ~EmbCje{a<_=XaA$7~_h#7U!ean+Y#eSM{J|@!N zM*Ll!&7w7TTx3aG4jxg{U{>qM(%(n)u}?XuhPwD)I?RIbBq2WD)9YC~M2Ky#I)sfY z$26(}6jaFLbmu4w z3|iWvQcr+CtFCH=ZNzzR2}5sR$~5D8vS^@88<7mlf4huyb$_v#b5)>mP>=xgqvj2moI14hZk<;zE-@?!RDJXo?NFgBH30X z_#^=PIr-zq6X5OO3h|+@jCfNNJW#;$E=BzxJ6!sjBgq{+!B*OEeg>$gEY$ms@93md zzn>QaOzv4c7v-xjuT`&8o+>1u7&_%+7eSc{0u3mNKmE@Al~7WgUjJqE92d>MHNF

JAK9 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

*q6LCeC`>F+_4+ES zJEjQzemTvt@$}M_&BkAsV|pQgj~Cx*ao^NgM#I+~vnmNCC6$vaL~yBN zXfuLFXt2J+<;Ru{E7pctL&F0m-shR;RS`eIiW@V^w@3^mvSJbO|W zQYL=?K70#pP)R_#lv~Vyhaq^skkKY*T-V0Ci3grhN4UJq z@@5nvcZzV=qH^eGL8VGZdH#E$F-TvalVf&rQrdZ4%s~H1qJLX92b$BMp~VYN#8Pfh zV#%Og%9s*JD-G@|@BbILiD+&jU8af&O}Uq9GTY=rBsTq0&hX8pVTorA3JosCo8YG9 z7L0l4jtmaHRVhnA7kQ1nMxAoNaQNbJkA*_!+o6&}0>4@q#KIPbDpN?FcqaBaF_1D)ZMX&B>$5U;(Z0Ee zK2$FSlLbMao22OPiqDgQ3E7aonBAS9Xw&P>6VepzH&J=H6^`HfE@Z-?10ca*T-r9T zM)mx?prbI}AyZn}NCNw&p4V6ITb8m_c$mo%`i;0Q=I`XWt6rsTE7{Fz*crJD(Rn#@ zR!6@N>JK*&yWa;h^Od%1tt<`BWJO_S37VH&UNYypb62Qv-0~3c-fsJO9|jJNRBMs&A4RC#yQ{@;mj|(H`VWyrQcEgnN6i25-|Nb zIOw4&-gQM9DcGBz?X$W2al}AY0zcfZu`-0ivB8?!gnsO$Rh21cFucCx^ zHNEOyT17~fCOXwEhI(Lq%5hPva+CFE=h6TIeSAVJjo3^`I0XJMcL$shuq)RyY8*yv zuv`a!@keP80+m-&QzQF)#SI;o*PoF)DW(u(Vo&HSI;td&-22D$(I6SU5UX4!A{>KM zVD>RBoEzv%g=I9bnNS?xN)n-%dfuPwXs4fWv4k>hC_7zkycQS~eX$#?^Ss(SQ9eY~ zM;3{lzrXvVPN#B^4kc_^OtgLZH+MV6XRbsP*fE#=RyD1MZfU_4a-;FA~QilC&P2!fVk?3mM!Fi(nPB?v&$`qf>S4^iam& z*d~pYN-citL}V9gq$Fdqp+M3d|N1`tv$=X)Dp_8X54k1+v-)+#l>G*Q#DaKV5;HAN zRNb88d8eLt$IuN1kUug8{^=I*`ZkrD`nYW-R^l|ceCFprZk8sPJCsbLD zkTEV)IHc19y1nC@hB+|Z^<||)NeCI~S0Lj(iJikCLFifh+oYItcxv0kv$bmFqP#_&8f zs$12dqD@^#)ZG!;aB5{6xA1AIQb-78845a@s;+da6`CS1Dk|CjvgZ|0yz?fRNA0w* zz3i0U)JF>h2`*_IpViP)uo*H?OHX^jIcQgzoZ1&^#uRXBemiIWez4Tx)Y`nyu~!rn z!i*!Bb|mj~$9>9wxdXnGX8;29qxq(PaoDljzZG4tdG_MRCSMK(cn@mihmif0{zzrf z&N>dko*!W5@|KR1W$a=Jc(Sb)%*A6Xe-P=t>&10}5G{7wLkq2kqISe2qc@ch@A41F z{WMo%RaCfuv`Va#`+wwcyfGPa;F1d^OJVwcY4g8&He{tEe1Bf(2@=)PT3Z+^AC6A5 z?3VtZ#*m;JvY%6lC6FeEAn#Y-;XQhE|Kqekgo$=>qwZl5glTid;%h)dEZ9=P?7!!8 zWu5E`bA`l18V(Oyd4o++bF^eaBzS%!=nuyV&7|}jqYnQ%QjL*hnOd3-x3yhPqx}>F ze)swF+>12*e9()jou25%CuGpEZLlJ%_1vdKU23ZPSvdQ}zE2`WWTMn$tOeG|t$0nN zEACvIA}C%g{dVE`wjCNNgv6nKkEK3OmtiKHFX$ejhJvbAJQuwV2-EgiqVxz%3b9g5MtJ=TC5g{Xq(eMQ1Kw-f~}4hY+d4?KR+N=zl8xJ5F#4uS3!u9?>B# zM76GKSfy#Z`?W-MvfJtd?zgwo%${OiP-#L*TfCGYf~KRKs$o)C6}>b1?b!G?2a78o zpZ@N<<jwcxNEs%6d`TPs%U(Wv-$(W+MT zk2C?J-i3`5G7q00G9o6pZ;rSfoXmxvax7QlcrX4)Xdn@2kg#h#KmQw`^7&CjFOJ%$ z)OdHY+)7QNw1ZG#N_Wb;73@6e7I|+w7K5eGsJFVlRO%I88QiV*gz`i?zRg|urSYEM zwm~!~;sg5h^1yW^@tXhczYfjoZJ~O-uTG8)C0-iN_MUDIQ(0`{k!`Z$JldVJbo?R@ zt4HHn{49Ja}I$f*f7N;&+T}C-M zvH@+%Pzk`7WAld7DVw z#mog;HH{l;Z__zqRMiC6;V;lY$SCnue66c&3yW&BXe^e6fwR#(pQv}O34MmM5xs5e7 zjq3s|7|=*sE4Q9IZB6#QLXkTBPgKjs4fke$2p}?^%Z~n6wXr&#ue%G*A*W07@(aIz zt7)n)NY7$G#mHk;YtNIc@#Y7I)d;_b?@0&W6^Y)P$0_|2R|_L?+CJ-APyVx{raLRA zdRZXOVU}+mZkU;R91(tZGA14l5e$4cAeX!xj^~{Iaohrp_n$Y|H zpj|8*kIjM8!|6@dsrPA{kDqP%r|&g=Iby#GX7D{8vR751&MLp12=9h(n; z7b;{hy%8egTAP}%x`~E%+A=1Ojv6!5?MWCzgg0x-?q4pdUz>FAL(PSukCX337s!LF z@$+zt#TVx1ehbA^Htb~CaFuN(#-%tA?>L5`lj3}KWhWD!2~Fa9pdE56!Ye-WT;*ac zk08nNcy6}7Z%mTtHWa~1_4qr)aOnM_+>{b0N^$CWsfic(c*ttWRPXX=~R8~MmmOCtJ2p9uSlrAtfi?z zy-c-8L@?SVsQ85EPJ6ck$<%h?sGL3xh8C~Rd#K2or>ROThvtvV7Z;RA>28LI(6x3G zz8g&r1c7mN$F-RB#{fLV_8dK&)>m=O`@0=*OC%H@yKCE4XYTnN{S*9z452mWb04ufH{p6i6~{d;S{SI&C}kG=?o^R-SD zs(e>ioVeTRZHlz&6lG1cL27IW$_@~PAmwGw-`Lpr-DHp}1&vI2d>Ai08Zjxt*yyn0;36ZP zL4Wse&6R0OipT`pa;Jlb)Ykaw=pDn{)$ zcj+HKqhryaZTI35zax;oS6S@DNa-8kM?I8Y&5+$Ra)#$kv%}3ssGrfZmG$b4(iG%2og#q+9b$MI{4H{v8 z{iYV4y_-Bs8*Lrm>6PlfRx&#B>w5j(>Hb?-w0}rM>?F^V}Z^P>_ zfjP$MC0pgEE*u)Xx#77pu~x!~_@qDg5uh~aS11J6s&}X}2A$_8UD@q6W}kdB10iUl zgP0g!p6*2AW=#uzWI2LrhcoCr9C)v0BF+9@&P_?svwu>f1m&P}p>C1Im9%`IYB|2| zQs6aXT(P2sjBMqRc+na4H*N5{#3BA6Bs{kl!an1&cU6vud0c+OF&vLTSM74QYPjzx zqWSxeOI95ZxjMlGN=?S>cG|epuoCV%nK!GcMmP%HosQE7>rXoL`sLxj_nM12TQwE( zleZy=4G)!G!ANg3AL=wr{+>BE2t&@w{GHh0K8$y{W6bDRhptmwdh*BPa10Q>h*c&!<~_R2U^- z=sG)>5PSEt^0YJeF);jcjlH;EU;c1ugsP04>(r!U9tN5?IxL3}#dO{XCtQCvc`NzC z_kywe0)f|)k^PFkz?eU?#rP$))(zeZr1uqmLfNg)36_?$_&t}`_ zryBG51}iEjmyQnbnZhD$@q^k*^N2WtuxxaWXt=~Q;Nd9sSRHesn>gbA5mu`AKifCwios!)I0QRXgWz5qMdY=&=F<9sy}u^a zx`#+~XyzK{>&-uJ4CE!0D2J}K)K(t@zG-#lns)2ylhyv}=WJ1v(ieM=_o@0VM+V$C z%i+o474Sw+6htuC%0oO?Y!fmv?B;BHfekms%_|+2>WAlYzFTl6EguNeA7)^$`&RX4 z95FaLoQJ;M8~n_SMIJpTO$KevdCrG+I@_D#~YrvIA9J$9VjJBK={JxOHB2|eTt9JHBIjij$ zlAGr98k$%{^CbG)%QxzVfQ*<^fe1mvnVGxdiq-qkvE_I90mZx12#C0YHn(UBv1|uf ztNi;TwueYtYUW#4bRoJM*`L(E4D`L!i#j^)z5ZklSvKwGGcNXV*ejZ6^#tKuavGnH zRecG)bYdqWM%2MbxL?I{n?it>)5h|8NR^dcxA{`~Chv5wj=XS#q)Y4zN`bzqnjCr;T=rpAGbzNiWa_5rU7DI1WFMr>t^S}U}lTAyJj#| z4CKq_23popk9P%Tma4nh#gz|KU3(+yTqCOjou-C0#Tjvs50N!$gt#;@H?P8+R%IOy zN8cpyoSg9)(KGUdGm36ECnAnnwiNRPxd@3TbW+L;?#Yc1{8r-jciISO6 zJbh*I#YdB_4q-B{e!7#vVTTLxU-2Y#N=disKnYAK9(0o?K-8;wQVFBr7TT=)_OUt; z?dp>Uzduv5h>!#+$&fc}dRvwE?JnIZ2FjTnx->f_T>Jjem4~NUWOrZoJ2~hRC3&pL zPECzq>S{ZMi`mH^HokT>1r1YlX?_)f@o|7~zd=6g?%A5+o5%<#XR;atg@3q4#<*Uh@Iq$oHYp{HcOp>m39W3&|n9Ko#Y z9c&*JH+AIdl&g{UD5hj#YNI$qOA&+hKkASBiY`udNwB(PN$WhfL8Y{jsPfU3^ec6f z*$RvLHf=A;=FmSqPGeg5F;sD^&gv$#5IB+oN~48^B;79im$2->K!fgS#S9xl#{Hw# zr=OA|(*t<3oGAL?sGK5j;U-lWQ(&+q_UZs$k?XWT zjEo|}l0I`y?3%sK*E2~o`oSGJB^TvI*t`C61%k5F7uCH)yxqQO#r*tX5+PrK^{s=S z>}!0QC4Giur1wjZ^rlS^A+ej)@&Ri`0NrkOcIyK&Uf7i(12L}0Izx-Cgjw89z~iZ+aQHX0tiRieKTvVg zlBWnLRc zxjXs4=HU1WK{mq@GGct{^$#hncg+8#+W0rJV2p6~m?9_|tMK~shEUwXZb1yxZEj-q z$ZGe}eICa3*A(kbh4Zw8+$d-Ys4PWK^Q&aCPV2c|>Z9H{|BwOoQXJtLMmEPW8)1BC zIP!ZJz^3rIM__|eMr^jR^RBUNikUzGd$A9n8AqfagS@N20tcvy`t1Zj&xK~RyG>bgXGZ30tl=DRmC$yfOf>1j zKi0%LptO=-TEj{RESS&qrHFF5{LtOL>t^*-BR|QjwJ7x6Uy&AWra_tY^QD5YAJw!_ zu)t?%pqkIUPc73X*pTAbqZA%$)}-$7_y>1XDRsEXTudHCT6X9~Qg@^5l(oj&8!Ib) z)qT(Vpk;C7pf+}!Yd%38>3tw)peWr8^4Fuo5-&Ny{enV@fk#;x{kgdX{?5yXg^wWE z;igmUaR0|F!WXithV&a%*_XDp=gfVit3>AW8aOfe_K8Jp=iSHMnJ4zJF2^+btX+yE z*OdK5rf+b^^=r?w6f$EjE|pU;ge7V3SIOhmZ*y)2A0k{%XD&+yL8S4GtNhoZZBA2_ z9ZMsqTX9r>bu3$t%Vgg!kJ$ro;UDjqNyM)^9I_AQrmWXAfH%>QqvtdAP5-jCa=ZF9 zxMNhapf;FdN^#lk!f*@b$)rCzEP`-kNJTrIw5 z4d{Bl%-B=^*xbc&{`Az0?G^2@$1o^nBwbi6vsmE~;cWahaE3G!8eUt^SNS+LQl(tp zRZJ+{G9Iw-c5^Os?UK!)hKtF}yhb#zBF%SSrPbwHxVlF%La0YJv!|*1GOfQ>XDRD! z@Q<=1y3u)F#piZu38l{K&$-{bjYWl9B6=1sVlEx7*Ck|BTaFuk+BTQtRp}%l+Dk8s z@4jxn(_{)8ZP+}?c>B@vC9StqOryVpxoeiB_>{C}rxq1SB+Y2Mj#c68?n zJM$LH+PWEIh$3qrw{+$`P1>!9sBbSlSP||rgM^8Pk4?NJ6gh!pUN|IpCS$DN+{3=f zUaviy?m#Y*lgZjiLP5zjMM~8Xd7#`S(Nun zWvEVE6S)divAKX?c-?Uu;e7qC+eVNLE-Yfd!)QVK%^z4}BcWd|J3LX#>l7|!aC;lw z*aG07VbXc4MKo-xK74qp@?$ge@=`p=#F0KOS#ogY(v6lsGi;lhn4p)crlGL(8yWX5 zC%d6>Pxv@1)n6)+{^h7smoN1x6W;Nruvl69TgkhoCbTgT{`iv9tW(@h%ax*RbSii} zZ^7FNe%p)f{uQ_-2&_Xh1~qHH%sZ9Wdt~iNJsvYF)f7{bvdEw|m}BPCjjNp-dt7n< ztX5~~XnB45l3j(tCR}3gwM``rjZck=@P=wq%h=0@#V!w=NPb#ZpPs#_L?n3(4u@c% zXE$=wadEG9=v-u&I@P5=wk;o1AH$iNI-y5)tv*YK*)ioZTe(c-=fSOe78rlE*5$6L_!v7r-MjxYJisXMM1ROa~ zUTQ;Xi?gx@xW?YVmU9J3#+R0sj*5zU$4hF;ocb9L@9F93{Tz{Bb)xwdq#F(u3VcUL zNB7Pup_;QBhl8CR&bfVpTB8DJ=E+wrz-vNah(Yy@jqL2~_W0OV-}g{wITF;8I~)&Z z=E_vxQ-9Jo_k*;$UT*D<{Ui?bvrw#1(QS1sDJ`Xz`-ldX#7Z`1&}moG(D>ZVjtc$B z3tKJSyXCvxEcuiE!++ygTU-C6*VYhlCh)sJmXMTW&~EL&_N@MpDhiy20gj04uMbLu zy)#gpZ@p@W7zQ;spuhGlFpK1V)vTy{ag4<cg%8CKft5JiY zM$<feVsf=)}atJy=GyLPA1d zc!K~supgshqzEa9h?kdl(SMx5B=ImhMLZDKfIa=a4SASQUUfBN);>Hu{QE^(ziQa& zL&rK(^0q1Z(LlQpEWx_ zKOrbbp#)|HIKUqWc^qRdOeo`SPz5ziPXr?wOee`Wp?!-Mb<*;wbI-0Q5v|rA3pNlD zH#hhH%m+B2O9C(>b5i82U%!5Jv!`cdAcGDL4-u^DV0+_xckMqSBMX4h(b3h<0{%AdrH;fA#Of1eKvWcdq+g6kD*f)xInoXag?7jMLCQkyaT6zUoi<}dn#`u-L~U(t_5aUiUKujQ z8Wq71M3ZklW0B(p|Ngm#=hbUe#8yQLq@V=^1hA(|lP7#wb-_VJMa9M*s!1I|?``x=exk6kur!JH~YBHz7@WRg^0&)P#H8V`qxMW30O z3C`{B7b12e{cj|)V13xO1R)O8qVFy)O$(UVKVa7?8ylV3KT|-k_{bAV%E}`0ewCM( z`*P4@Mdat@L7>nSc)!0M5PILa!F}I@1G5$_o4O@;503ykBtJ%J4Gj$tXzVA$r$(ad zXxvnBknf*AO2q7>0zlG2fW**I)#@IZn7|AZT3cJwsBmUq1_t7YA>`}DsZy(fQVL=H z2pnFVoSa-T%czDN9vobtLXX6$pfhiCH(z?^hjKvt-pPbJFT`Y*K>M^9`zH z1^X^AR*z*We%nd~bv`XQ87rg@)k+;4NTsN%8Ug__S5u(n-+p9jnz+O#ln}v-_o(26 zf|?ps;>3&${0o>j9YjP#vov6dI&yUpU@v(Ul|ef#VC)luB3Uu9ScyWwbG;>Ay=cX4 zZ7Z8UghWK>%UNAu03T9OQQ;5qc|UV5)E7;UEw|Nu(ycevHJsySo|{>?9-x*LxFn zYpNOW#k1nq*+n5?WU5anWIY3TxsH#aw{t6Ew6T@QPB3V$O6T;YJ|OiD_E z^zwP!g$m_y9oU^NH~4SB60^duq3#g_kH{^aW_NfJI|yoNY1!D&L&X+jJ~nc~_QKxW z-SK-r<3RsCUrzyZdXUr`F9;0{O`=gXh&*3yL63z)h`@}zJY8uD`q9i)X3%Ij6b-ET z)zi}xfz5zs9Vu`Tp;88r4;n}h5NdTw6IQ&bsi}xTy++J&Mx&C+A)mf*XHEjxQczH! zH^!`(<#E>X`}gn8PJT2k!Ib@Gtx6!_kcN&-7?h_-h!{=KKsnXba%5;uj*ei|L0ErX zLO%C`X|whb%ssd`F~^I)-%FI1mzLZfu8g<#Ng;#4x`r~@{1de&;g~c)MDLaBhUXz7 zAq7>d)h@NcGNn&Ik?)e}H2vu$K|oBmxtwDS*2#U#6i5ltiv)=Av-*OA3=hkdD8U7M=VT-N@(R3TU%-A>3{}o(6E+} zkf`QO41DlivU+_yu4-#-B|{sT&KFIRFs}Xzqfo-iz%aG>0~s0lmr^O{t|vI4>TiM}C~;l| zBkxVAj(a{ zlz?>ledq{{4q07Y1?V2&5;#qI7~+cy-VK0BftXrdrOhDFZm^gGQnf(AyjmEqXV>2A z<#vHODZJ<-GGcHJFKT3-j&=+gnX z-^i#yjW(nE=D&242ER8RCeV*=4kB%%h_0s|WDN$o@Nnu0`0L%+$ zI6n<4*R1pNbB^>0+A+9-o)+NsD@Ts4fKW>|CJszzw_a|x+csDe{T#Do)#-AsV`!Lv z0c6}TAe&mW=#wOVPD(?tP*SDHe~tk;yVvbx)3nl{Q88hnX<-RFWY=rhRaGVHsudU< zY_s0Z#lhhs9@XT_7-16cQe2gnXK-0KkSI~e#l;1HeR_+w4I>UU4UMLT2G-Wry%mrn zfTua%np~I$wY9Y;CMEz{DsUZB3X6=Cl9rwr9Sx6($vzdWo;|bz0@B?4@bpyMf@Whp zEIN8}e0+Rz66MpUPmQ$bzh`G1&euC$Utjf*m=y~Y4v*%_7AiD3&~5z(3`&0eGBYz% zgS8a0us8zZC3){VL8gqVqT=l0qF9zTNgU@321I^ zZf|b~)K4wTH$IaEsjIv>3uWr00RwedS@^cK%GpDJiQj>c`+!g}o=9VxP2cC8`uX#x zs5cV zymk=1$33`x1k_^0KrO^HZ}#wy8EdZual**m$r1}+h`hG;+C(}>5D$capyI#4@WqZ8 z*xcMKDJi+$5X!cOKtD&B=;?J^GytUgRrw5`*r;jc*1dy6wiTMY*y?1NgGRb?dI$fB z5J)<(-2if5|KK1X!02HbEF^xj(j|;wAPPgFFkCxaf_uYK8lGki%i-bSdwV7z0S%4i zPOqn;R!8-U`Kqp0jS3Y(uxh1Ni}#Crtv3VZSt(NF#9m{-PNoM#<~BB+&ZlX!hZtzJRRCF1 zQJGWWdy|e+_e-Ur0<7|rLAP<`l!=K+G=?yw!=!IBW* zeXI`G09yi61~{kztUjJ=?7=g}e4-PgKmd$d# zd3-iC9bH9PnIVqJLZ$Z7(o!8QsUPD4Q6Rv8fSAjaDF)ca^+FE{?Y&w4&rsIZbReRy zUyXs$jZ%qVfsVrjM#6}af&w!q=YNzADAy5uw#FqZUGIm&X|u?fnEz0;eUw$0XdE_B z&dJG1T^)C<7AS6??$5K=Ybly%#zse}si^}Gj`H&I3f;2&syWTf&0AbANuXwc9(8kb zL)Y2N}sQ_xs={|YSAwMY~I?|h8w&D zxVlui%tTtDSAp!pDIxhYS{NA%OI<^QGPr4CeBATy7MxpWI%UzYytueXWi5aTzWxH% z_w@91c6Rph>C&mPH8Yc=!~n=s(K=+i83~&n(D6_(hwXYhfJ$h3(rUjclSZqntMBga zfQkuFw5Bopz#nC*RZuVxF3ms^a$zJ0q*(SF*vZI5_iY}WpW9knXU@d;)SfKWnJQB& zi-`@#k&43LoJbRaAuLp&(1ES``ugBtxF`|QB#G_q?QFZtOdc12Ui*4`b-W*p4MSZ$HK-aCaH?$5a_cLnJDN10u(VQ4-jz0#S}C&$L4m99UUFOLd%7eM;DuYJB;-DsPBmZ zp#0wg69{0y&j2bUJP-}pnNDT^b$i0tE)dIKhwi`;VL&wlbb$hTK*UlqGIt&mQFt5x z*u^I#0JTVHfN!;KQ%46MDXC#^Bnn`CD;paW1O&Ik!k<`L8rr>3{rNEu zIs#^9W_t$*x2!Jr+tLjr*DMA)x(^_$#p=x^9vRr)t(=@3y`g9VkT2k!#>Pe&SH8i2 zfTRItpPQS@&~bxyiGqfO3&hcK0}@CMST|rI>_pPX$H&WyPgowvC=zxw{gN7|MwbLyBCnM9G`27f5(y6clQV z@Q--xu!7t$#NeI%eISHzK|g>3AXDc4Bm#(kpg#g|1VHrS-k!aAWc>X6930rhN;*3H zuT?+}pg$w^^T?>B0Z}6gFgtQEz}&p2pX-)9w+BChx+gPv!e&z$%YX=q6)RLAUOEP{ zVWd7yA>9$$&daV@|6?u6uP}jfR@6h5U)cP^7 zuoN)n78favrtb3;N&w{RH@Hk3r9lNpAjFB?^dd3HVJK^BS16P`>p0vVDgPX605mO7 zXHB;F1{MMhM3`|P;d=Y}fCdvlsGb{D6%|gL_y`CHWavox2(^|Al|aKHfBGLQeD0bJ zb{_D!!pdDe3m)Je0s5avEx16TwDZ(?G1XwX5P!lSSSTeW6$x>407}qHVM_p)fqo4c znmCYPickCP-EXV-b5ZYU1R%6IfCyk7Z;198Ja3GxnIvWIH zW?>1t5+!0pu5&t80SO2T2c5f5FD{y~ekLU)4dd`*#gmW;1N~M;# zl0dJ5$y%!uz@P3N>pX0MC(cbaYiO$>WY+KX4~b~e{hfBah}*@9Ab>W*Knw!T)XEBD zy$1)$jyqBIA1(;Qjw3GgT?vof%2i{D35K{j){dQKXLt7<2sjrARHnGDtPBa70+csa zE#N>s=ieSoP{${I>a#9fO^OC=V~0PXUhlTvv44Qli-oSdB-o0{H(W@ctWV=@FTY7GVu zfi@?when019!e^CAXfl#!;-A13kn8|?E855g)c$+58Qb#>^( zK(7V|3k%CC7c2<|=o1Uj#2CWn4H|80^a&$kEmAPweTxnOoFO)igSd-ESD+`8BL+c9 z;ufvgqqj*&NsXD+tG|*!_OOA>QYZoB72@Vn!4;W)G_lEyRS%<-l~wr#H_#bg+=76w z!9CyA6cr5{Gynnt)NKGTX$UM)ATVaHf zAbp(kQPD|5NHX)fvHyV&(Eadq(GtHD|38~)(kRmZg#WK8=DoRQdD}?@NhVsK^P@!v zHf$$^-I5?0=L4jVaQlOrm;taAve7Onuol_6yE}liJ;^}=DKTQa|5~#U0KWpx2vwrS z)QNo-hV8|H-SAVQHpU_UucP<9uT9ET7r1c21eSqS$j@fH|L?Rek9=6A|95O+3<;9m zcpwyNr66E*611>k_wQiD{urJJu%gByEja|-3Dzv{50FvY3Kb#&=jMDs1IrGqYAP>G zw2DgIr1>LvO-V}&DyL6-iHkjl&y_@wrKGYrs<7Yk;GdM6D@F&G4vDZE4Lr_;cboNV znMxaXS?@zV_FsPX+TZA_kKwJl`bO*V{3*zRHdj#b_M7+3_d%bx=Y|Xc?yhm= zE=1io8PDfU*~wR3p9XK^ZkDxFOK*a#H+GP)aZy>2-$s;D}OKHG04Fm=Sp*3AQ znL$^^iVUWQ0U-5$5faGE>}*(+P)cZAFM_VNE$*AC!$eRFXn4w{OXla~%U;2Q%ZAQd zT|8RF1mWLcVKk6{kB_L;UFp&|93f%1CRP@T{|#{HPyhF75*A$c^U&A6W{xkJuP`7v zZ32w2RWV-m12RAUQDWT}4KF8S<6UeTF>+ccquPvVg1ha@-P`kyj#&N1DiwSB$H2fq z$|QuEv1HR-ll`4t^3k6+r~i9t3Sw0GQq+D=k-v4;9E|?0?XG@|Ab5T6&Ia!ohRA*i zM>^O6XWY4a7{k7#rD;>XOoSFIM2KN*;sSl{{*NlkfLG ziU^2=ptK+j(jd~H2+|-SqeHq=Mo%TByF*&KJ4T9h_h59xfKdasedp`_`6Is9V?W$K z?B1^XI_Eyud7kGv*OA_tlL-%xkTm-`pf-1hn${bn|Ufj3bY!2m0SC=Nx)6(P* zwj*3iY)5e6P)YCm6%C4Qu(#H6{;@<|R_;eXk=ZZA+OXazuz@sJbm`G_O{u|To3Qwi zdIzxlVC&9Y`t0N^qX$=Ib^r%iIrXN5R~(;8r3d;k0LOnj!~Eo_*?M)ssD7M<-R`AQ zz}d$^Uex8ysGzf>I$<^Y&YTIdDP9if7 z^K4vt(~9C~i~8mhYMQD|Xt;bRG{>%e;wE2K#UiWPCgxO98u< zokKz9!yPL*k%kqBZ30DDl!L%F#rFeyEWh)y6LmZFMG!LF<7SKaH)`*)>APw0_juB4 zwo++t)H2R(nKK9LBoT=m#e-M(l2D|4*4W>NrbH^R9-&_=Hn{JIXbE#z90NYs)a;D{ z>l^^mq8fyi{uh4KHfCs{-Wa9Bo1>_Ld3C(12&ljC$$`9+>S2CUPLo{2{cTdD>%6+( zbP;P{%K`Vc&$>L~rs&`WTJZ@!Jk@mBw%g*bBvY)3wnQ}Jy2zG@6xU}Q9a0nPr;Dl> z1q?!jl$_tFBroN~aAJA}^HL*(y(h?6$75SH{WNFYls@T=m4!3`j%J;SI`XAB47V2t zY&fWv@;FeZ_Y-P(Wm1TfSRJ@)+Nw1#&bNEuu=a-xhT_#1A-1k*yXFbD1CouB2J8c6 zp*;B7uzaAem=vYmujYaPn}=T$1K8Uyzf1S4d_@K3;$OcXjHSFvCJv@Mm;MyBtePIQ zKsLnJp5f6>S9iJUSi5O?fE9z^lUZE=Oz;y8$lI!z4S1U(f;p%_1Gs(-_PV2BSrvvZ zBNMo9rB=lCOoG(2?btEW=Gd8`W7OF`0wER)(u5{jvg2{l{ip zcIZvK#-|NY#Yyv^Pw(v5xfT8f`h=~wNRoeitv<@(cW9ypTey#D=?7B=v~9sq1G59@ zT6-QAW)dr+vcvnWKDKF;*W@2CdY{Jf;JDl)$& zND%$~`Q?f>%m3(3E`Jst3G+9+pA={L)iN%T_mFOQoZ359&~;mW^wXb!Jq-CjWLHSoH&_B!M^yXf@IEKghSkIyV6^;9|kUSi941B@gZoAY1(0 zUh0;25*?!_o`s!RDpgtUuBEPe%~8_)S_Cs`kqZgQ4AS)41o%tp_sBF*r9`HZ&M*!> zVzKC5w*mS()FhKqY8l{v?|?)#>BMvf9hSEMkM9xF6rCI`I|kra;G5AvTq1Jt#TT=Y zJ%d%>!#b!TtVTHNq7&{6zVB)lo7(rVYCjdOdJ(<)e&=bE8hSkebT^6*{Sy)Gf79fQ z+M7Loa&At_`s3f@zY|m{GneP^Ggsus^Fq=0#0L&8Al^&e=zYBe0L2MXj6~OUumdzj z-a?+@eKp1<^c=T}A?_{078ZTsB5u+uC$|9*sRBn4SU%{C$(W+ln;B^ud#2Q#91(!nVTnm_W*9)z62VcV$k zJ{WG9vQ!BVVvE8#a0AW_TFBu)&qalTZWs5)wR3KQO|f4n8lMU!yb&@%v7-$F(!rh^ z9rkRiz8yE(m&H}(tVBvZb+71LADZdl>#if$y@HByp1Kf)X5lbSVjAcvQ1*ObI9pQ> z2VHp%vax{2!#W>hdBNFy|44x{^pzC8hJhO;)ClPo|O@JeFPBJ*D>K+k1htKkgh6zkhqsh~9I5bya<3p!bs z(QDM%{B{t^DG{OWBX3}>@d2y%N4fG#)uK|Wh_DQoMz9v*k1 z`s;bx!wiaHD_r@R({Vj1gcaV|Vea?EUeC|CbN5@9uSsL{9&N}u6o0WM=H;S9OE^0w z&V+9R%a7eXA$da5ff}xor~W!~zw7I?&E8?^N6mxS0Z8WDZ0&;VC=s$B2JvIwCgtR? zQ{pbP7x8R$G>hC4nWJ<|5=?h|IXDVTO4w(Piwg;hM)x$Sg5 zIK3xUOK$vq;n}w0GzHX73Aow$-M0bDft|j!1~g%);go;_ZmGws62|&QMtXWWi+OZ* z5M$*2ZzvafRLkEYH~aOV#}) z%AGnut1(X#NPHQo{v@YZiYv9N#uuy+5Pe}K4V{3q4EkH+wJLYys1`jvC$-T; z`QAb(n%?)CerC>lHv)Y|B(PTQU{0aps;d&FbqW-9a+RE57D+l1i&gRaP4Ja~k)|^Z z50eV!Q%`{+^3r3^;z^_(?l+OQ19R)5n;maWjUYcclc=8 zd>1}-0}wv1T4Wb+gBgS>_CcF1q~LJ6muvwkcJlKFdl6F$NCM8Yzi)D9OR?JY$ciWv zBP%+&c|JU4qv?3siA$eXWE%IdK~3)I7<){a9*4E+xsXseMN|QE&{h&y zX1@BkT~-)nExb;MJoWl9?KS3Y2w~_N%XJs}KIWMy18Vh{v>{oKBZD&tfcgG^a7Y;R^G>^S82Z96|oFkx5!U-qmG+^Dh1q&{o8l!0=u$RIBoO^>>@Yhk zoA%()$@e$~vOV?1>CiP@nxK*8cvRuEHOs8I!_~IC7&g}O8~gNuQ*mtQ#>e5H(YKRj z8$`b+gx=gFHz&QZRmmsQB7>lyouL~LiCzhc7(R)r+#8LP34?FG1QpsT*6{2I>*pPR zk*5mUuw;0KN&*4efRFK9{S~>ra8Q@Ey#M+An?EVoSf{`2=W6AQDn`TwMeQ2y*QYEa zE@MD+^!(=lb^V_$YZr1>x0C(DD?$8Hwg&y-kFe~2OzHAGdhNGCp{8EIdh*(7i-ix( z^J!h#cRi8Y-hSx2&sAZrwM!$SZRm+B!fAo)pH^+x~3PY#? zaLZV79-0IaC@X!7+TaNEPk3I3U*K`IvGN0~gi6zr=h?$veqLEHO>t^obWw-je}d$^`V+b_?89?{2J88**5-Y|E-xEN zbetrc@D?|>XCvGXd8GiM{g`KJpeFa~Jb-X(wqvI2`J+ALTQ@CtG>+~-4sJ)YiD@VQes8gtE#i-j&i+jb~h^f z)jM#0VpQAhXN4aD^nCPm3Ar9aib|@H(BC5zUcXvB=ePcLXHF1Q%D0q}BGq z!Dw!ygky!Xya~tp2^*7%&!z$-9!9mQrR!{e{fV|0j&<_<-zu!VFK)Bk^Fpce84_5(n0L>!*0daBM$A~S@S$U|G;_oaEFI@8N-%{jmh3Saz!TEXKBKL*^V`Diwlz99!9tY9U1c1p+JUSQ5ViDKNt&k)q zl7x;eb@5l0akI0>w)>`eZ%-*c5#ec|jH}nJ z^D9^JT31$EYBe=pf**uVm|>N~Y4>Pr!A0HLU~qM`|1xtHT~buE)>pFHvX<}KJCHNZ zHMG1uZ>ZPrsH_ih4kMd?n#S4;QsnXD5DBK(|CKFjYjlz6w>J`FF9L@JzoaF0f%Uq( ze$)L$^RPVmRR9|Uv*7!#&PZqgZj7Y(shb=wLt^D;((Me1f*|{MT~a1(omNyINyfDw z&ev|aEU)dysr$cI@-Me#`2(GGEm~Gu;wF6-Se09XdN-6=gzn$HDrWxElGzvsMOPw0 zIv$iaR3bZ&AeXismLjW9sIQ{prN85h7gtq<1;KYqWpY$O%%3}Q%U1xK%62w?7a_9+ zqR0;CT_FmrrHfbZ)V`p_`@00uk0M>4q~;n;+eg8c2yS^h$435te8mG4sfB#`!c ze~*`%O2dswNEt`U8g1CzhaM`sryp_>g%BSwzn(4g<`ftF)md1{B$HS^Y4 z@KCd7%hGZ+lGSPhN+4ER5Ase2vFIMD2nXHjL&r67FGqUGSMX6vR(l~XysqNbM$G(* zscV__#<$Z^s)PG&b<_88Rlp^?76JG+cde_vzK@!YerkBuJSNY>^)ezOh@`uSd%um& z(t2&1-h56>AYfBD=9OsD&=|?7FAqVGIFJBGhQVE>%6D#`(N)E}s3Iq3)B(d9O#^!9 zeLQ^}?uRHq9dhyLlbWMQ<|_BO!Ayldt*nLLQY0*{eIyD8`;`RDifAaIT$gbQq*Nc^6;av1YLdV zxPOu=e(oR#1eG6IIo7wc+rom(m3WCAVt;cnh(;c4MR;ndoDt{Rt00bw_ zM4w$Wn3lG}xC<5bb$#ya$QEuhnwwfg??WeYx5`x-Z{RpC%jM^F?rl;cLv@{ z3fZZdVO5K{*EeYjmLo4W!2EtVv3Bxl24zVtxfaxgk)R00JI8F(B2V|fj;tE>N@-{t zd8W@rJKWS9zCH|>X@yE6^vkoUIRd3JfSQZqvn+}@z0`!$jzspvC&t?mIu}dFtW>af zi9;3y#%CP)5-L%j@~)HmuD=r|LIh`d^JTP#g;>W0V5H42>GtLdMtY^SUgyNb2rT$+ z{&8H^q+d;o>$JCaOAMtCV%|=^@^--9MF9uE_a7Zkg$Ohl^|?r;kzD@lF}9+sSM49u zTt+a1^yBbNy?S9kM0?$hkitqfUSYN_iI&Pi5yz3g9C^}*3< zDpq5B|GCNC%#F-`5NcXmxZ0e~2EW3*)VMVyaCxEj6QfVtcS(4uf3a-#G{I-dYnR!v zhtL97k*Cx6MiV zeGFhCgjgq!fzI}%m<3xIz5bQe;TokOE#94|y=LaU5Y^tH4~WBBAvq!FhJ7q4g<9nZ z99)p`w4ul1_T>Fxxhr{amP8vvOk#JohKYNOES1fXi|R$K?ZVY>Q)))R#l^=@+vcFu zq&BJ>Z@-C*pm;5mtTN9VVr?vsc;4JSqny2UOF|gP(dOTFQTUZ{^r-Ig)z~Iljp1?> zk^XTJ+F^U%34Nk(eO8#ZcX_Gv=|T-LK738^S5&nnO|){rD)F(D$WXx5$S8HAN1pKx zsrrq&q3u)S^HtV#cULcpX~9DCCvvvj-yd7m!PqrlQYX&6>|w^zwM~_k$4l4~B1+iV z-Q`~5Lw@Xu{rzb-P<+^YswA-#M@iLrW_jFv&OXsWrel$8;kQA1TvJLvI7Nw~lRml- zKqK_M7g83d=w%ee9w(bSqv!DKPO5vQ554jiVfQu4ZlS5RB!)mcc zK0{7CUP*cRT+>{RQ|Qu4JpbowW8uT%=Q97?C%1?pcM4~TS}!Kv_nsQw7sdsP8&khA zJnhE$H0EP%{+b2Su(vUQy%HrU>~9}91H7-|2CJWr<57b)V~j>X9y%G~yqsmX+P*>z zCyV>*xtxNaPJu5ChBpPuqiHYa)oVe-O`PsJmYge^WfA(c_zmIcPodu%oZE__4|ujZ7JgKzbdH7 z`xUnj1eV|Ie}IY_W`~+R2jT=NV!gvtgz#!{TvvFUiGb=f??~#+vvKr?&&Kq7Su5=#Q&5?l}9CQfl*2DV{sRI?tfj=1|7K*8X2sA7B5pKpxB!^s3F^ z0!dae{ymcHOdS4+cD(-qRWm1Qw^F85r0!el80RT!jF_%pqYe=#y39>A|DTtmrxG?b4&8FzcF@-aO^{BRbyB$5?MpF+}KY5X_fiSg3(J%$ zC=D?pi)D4YeU-Lm<=o^q|GxFcv|B1-S-MatH%F4zp*ZKIPg(eWorDykFok5j*EjVi z;mBnbunlPonRE9Te%-^&=+_>UHvg-z*?+=B>{@qu`12%?%)!k3;fgicn5i*;B42VD z!-#iy*89pl1oR<-QIK&KkKJpXpz(-Tv6}d&4(Ae9X+(vf~q>6GK6dThpJPot?ZtTsVEVeAfG> z?NN-ONg^%VX|Q5zY0A>$3UhPwUP)`?<;IwbTCzIVzJ^$JGp2-?mf*1}V}-X1E158p zZ#MmIpicv1XdSIsO@zL|ZrVoPiMBwo*7p(Pe0!W|w|kUt`Y29fOu|N*}EgS^>#ZZS^JQCQtjFKTG20ma5fQ3kDpudQE$NgCy=A z8yiCI+H(4&dmB}$%)WAKB*bxli`T*mElEP=$AR0k!oZV)lQg!Ym0^dhqrMA+LqEAJ z27j?AQx4CXPW|mEh_mg<1T0Ly;ipJ+pXmB|r#58eKnQpY1=mkKcjKoxe+qKSOiDCG zI;7_0#JJF4VsTKt#P;k7P~vI}I24_1!4~Q18F0kBOq`Trg;?T*%ynL`1^__&=?SqfS)@zF z+rMsM_gaMP*=RUn922)+WxMfUtg)KPv6#w)V>$Gv^k*XRz*Ylfx5-~XP6F+^%J>fL z0b;FA(b~`NzOlTA33{$g;3kIWSP#yjH`{-_>vCsR8bYE0?x>1QvHD5+$5V)0g~$_( zESjs2jp1{LCM1og>{{{xx+Ui>$#>g(vUWy3UHej?&S%+T=mwQ{vTh9d(%jvu;m5#> zqO)K|3#qHDd`p(##eB&udUdhjHsYiRAdzPW9C0an(k3eY*6XCHl_1B^P2lbbJvTi* z6Bxru{3@ zsO=+C_xy(tPs)sc76i-wkNY8kOjsoeHGtODDbxqrk?#$zzs=7Uo_Crt(( z!$Eix8_dxALC*(!(tmfAXDz-zYy9D&_4ZTi&u%8F$&`n{Y>q|4LMDOZz5S{3WgXdX zg$$Tl8?3PJz*;0*afs8uyk1e?m3D8z!?udAa+91PSl3k7Bc}$%8TQoJ$}AeBh=>7` zxShiOQ;pPpvSQjdBqjaR*-_8Lssl(cB^_9OU835x-Z@S<;^B!`od;x4v(|MZYqZ`OC*aiGj0F!IIReB!g`fq6BmLm);2@L~NQuJL)m zjUW+oqlibuL3)SZPVQljPQr={Zoe<+zfj|NsHbJocKTiJ6wM5{34Yn{J24@D_MA+RS7n?Nx-> z8r(@>Q}-ksC6y@(y-SY)oUE)3%e-26#Z%%0qsxpkR>E{_0WA0Al937D5qFraPhi*K zrJPuvjiidU&U#$U{G2{6?z6R#VqoTJQ{!X`nz`3)=-YkxiZ)UeqcXZeyPvjq{14Xb z;{p!+G*U}Tfz5~XCAGJIseWpIyd*%_Mi5W%tQz*#Yb)wszL3>2EQ^i}oUw5pCl>ZJ zw`x9QDdjrP+^L@{e?8hivkm0FuK&6<6qV8B6jx!pFRItMJbdWsBY71)WYi$WXm>E% zaqIO(rtfEc$5`6rPflScpD@#DfF}Kz5&_)P*SeTHrOHpy$&uM$`g*GXzt^HM*6Myp zb)1_~A;1C?kJ^KOJC(acj*1?h$NvM<8}&p+=?Konn~9=}k<9u6Ib64KefdAme*4du zi!~Ri@~vOHm(F;U?IQv3hd60zv>k4jA)zGQ$us{zG=n5z$DG}JHCzUzx_q%~DF?H_ zWqUe|*me5nl;8md26v9@@hu*1uak4EN`~rfOhUt>5ye?{>H76xIkp%}Kybjtl_8^U z5=R2-1+uuHBR?8}@Yd4WQ51iW&LpQy(?7S@>P~`dsq@-Sjm5^4q z^rcbl?<0*HU~O1Ypsl`YXYGQIH$Q1Ve(1f~l3^|BoxhS3H(D^g=cAe&yF7ngqj~YM`T7B4mkRKoL^f!BIEsJ3(@)TQ zvOz-e5DMudf_59n8{?pwEh^r(ILk$mIY^G4?{b=A;v+kK72?=vC@noDk+j=;`h{{4 zqdG57ypQL^Ao9H(3k)|PEAj?nYfOAsRqw^?+!`EN%(>`dejCCW;y~JY_MGf76*YmU z<8n2?@7}_9JoeDVyQGU3+G@UFl~-~A z+gwzMDsw2o8ONHFt{$l-eDo9$3tXQ%`q{%L823{NC3WQCf!{_nB|Ca@gy--TLmjC& z$^VZ#;u+8L$NA}MtJm$nLtgyta=rPF_6eqC)_SZc^W5K&WSh73 zsf65wLC1)zTLOe@P~V-_-265mdjc@HTh3#69r65D} z#AT9d4il+nxF3HdFnj#@vdo0{sWAQR&hKDc-KYQQW$k5_gwAl9zCme?_O4vE(z18| zR!qEt)l9H-aEt^GqgdlXlW0%Oo8m%ta`)~+q0x(c{@E7;Y>vj-&rXPpdm6hSF3)z3-R5R?{*{;J|HFO{R`&b94y47VnSYH zj#_Xw#(K=ruGnHL7=MIo+~V3Em*(mBlte?c`u4g{Hx9EChPnlxDD|;eP%sxfdPpT7 z#2nWsPtt+&imUFd)*a#7eH^g*@c3@5z5#Tw#KBV` zHH$*E5AZL+GFq0s5U&|lMRz&{VynXYajhR3bR?{ZU%xDf zAU^S3rj`%Ffm%O)^fgn$nlQP))ZEuc^RDx(p@IGNGpTm@dUpDzOWGCErwNt*KCR8= zrHu!>$U0OVw)c3vVK$uitGpthm@q^%W?vpYeS$)W_Ggw@LfZ;Vge8^l_F z?&UOdH^_U)F6i9Uvi@$+-ufSa>&12)*w-&otzUy_;WK!D?rcm=|B<+PEIC(G^Zlf; zw{5{O5tW1;6nnH=nl`@^o_W7hiRt*VUfFn%SsESecpi>Sv)9y?iGMRl{fJgd1 z@Obe1^+WS)Svja~L@~4n`6YeNFJZUj(mZ%u&ukh){CTMLe|@HUyn40;JS>gqVGF#B zy^^`>??Hph;Hp^|c!n387IO@$EYQxRvHAPl4{4cnPPwR6&-R5*5n(NP1wa{HkA-$@ zIN%OLV5S;AEWOSTQDrTx(Bec zVm2d_Kv5uvtBgyUG_}KZFz*R5Ql?D8)BkQ>tEEtRG=(E+K!hftY`itQ)CYD9yiBPS z#b4Ao&u{HDkeA|9u?nLz)7tu+(?IXD4RQWTA=Ogw%RNpAfRIyBQckzjH7@kac0GWy<_obPOoGiP5ZL}=^RdB5W7QPA;Ut) zqni+UgL__m)hj??-LB|(qC@4Ez?X4TlYo~zQUp0xR=-5I-*rew%^cYg&tDHN8rQb` zp?{>Lom|H&o0a%*&3KL0392$n!pJW=_Axt@{*}c4yyqW+9!rn6+t~X0XgFmQmcF~` znF2o?=Wb>RG7Pw=HzqwYXO`LWNTm9c!qjqFIA;ndB|1n;n3J1cAk0Fzs#fQ6^_(|g zT~l7;f-B8JP8b!l`*w!Dgv{^QBwH^YK+jD_`$(kV(j{Y$%G4`3|%DgVk* zsEm`Sw6`e5mTR^pE{1aWsn`9Ro_4zkPk~~tiC0#YRU*3dp7KAHE?*xcy3o6H!rgEf zWNq(1zqMAs35 zF0YvIFWx&RmntzLzf{na4)RypV`I6X{}1kCbp@*ZbBi!T z;y(k9x$ycACu1&7U;TsLn6dW$f58FFxBm-YVb&A(-`4wY5Mx67{|&nTJYLM@|Ia^! dGQms`jRxUG2Cnaz^8A~)qMVv+rHtv1{|6tsB-a1{ literal 0 HcmV?d00001 -- Gitee From 39f098329c795bd49a19fdbfbcdc416d1e1b12b2 Mon Sep 17 00:00:00 2001 From: xxmNIE <724931324@qq.com> Date: Fri, 11 Jun 2021 19:25:51 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{imags => imgs}/dates-time1.jpg | Bin .../{imags => imgs}/time_fmt.b1d79b88.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename chap-28-Dates-and-time/{imags => imgs}/dates-time1.jpg (100%) rename chap-28-Dates-and-time/{imags => imgs}/time_fmt.b1d79b88.png (100%) diff --git a/chap-28-Dates-and-time/imags/dates-time1.jpg b/chap-28-Dates-and-time/imgs/dates-time1.jpg similarity index 100% rename from chap-28-Dates-and-time/imags/dates-time1.jpg rename to chap-28-Dates-and-time/imgs/dates-time1.jpg diff --git a/chap-28-Dates-and-time/imags/time_fmt.b1d79b88.png b/chap-28-Dates-and-time/imgs/time_fmt.b1d79b88.png similarity index 100% rename from chap-28-Dates-and-time/imags/time_fmt.b1d79b88.png rename to chap-28-Dates-and-time/imgs/time_fmt.b1d79b88.png -- Gitee From 210ff1c5429d3cd4b63384c7c75d210fa5f515f0 Mon Sep 17 00:00:00 2001 From: xxmNIE <724931324@qq.com> Date: Mon, 14 Jun 2021 18:03:31 +0800 Subject: [PATCH 3/4] ok --- chap-28-Dates-and-time/28.md | 398 +++++++++++++++++++++++++++++- chap-28-Dates-and-time/imgs/3.png | Bin 0 -> 3365 bytes 2 files changed, 396 insertions(+), 2 deletions(-) create mode 100644 chap-28-Dates-and-time/imgs/3.png diff --git a/chap-28-Dates-and-time/28.md b/chap-28-Dates-and-time/28.md index 50a0e42..8932015 100644 --- a/chap-28-Dates-and-time/28.md +++ b/chap-28-Dates-and-time/28.md @@ -16,11 +16,11 @@ ## 2 涉及到的技术点 - 时区 -- 时间偏移 +- 时间偏移13:13:55 - 世界标准时间 -- Wall clock +- 桌面时钟 - Monotonic clock @@ -64,3 +64,397 @@ CET 表示中欧时间。这是UTC+01:00时间偏移的另一个名称 ```2009-11-10 23:00:00 +0000 UTC m=+0.000000001``` 这是 time.Now() 的另一个输出结果。 您可以看到这里的时区是不同的。此处显示的时间是协调世界时 (UTC)。 + +## 4 Uinx Epoch +“Unix Epoch”是自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数。 + +使用 time.Time 类型的变量,您可以使用 Unix() 方法获取 Unix Epoch +``` +now := time.Now() +log.Println(now.Unix()) +// > 2021/02/11 18:29:35 1613064575 +``` +## 5 同一个时间,不同的时钟 + +从计算机的角度来看,我们通常所说的“时间”有不同的含义。 但是为了更好地理解这些特殊含义,我们首先需要了解计算机如何跟踪时间。 +### 5.1 硬件时钟 +您可以找到一个记录时间的小型硬件设备连接到计算机的主板上。 + +在这个设备内部,你通常可以找到一块以恒定速率振荡的石英。它只需要很少的能量便可产生震荡。 + +拔掉计算机电源后,此设备将继续跟踪时间(直到电池没电)。 +### 5.2 桌面时钟(Wall Clock) + +桌面时钟主要用于告诉用户时间。 + +### 5.3 单调时钟( Monotonic Clock) + +还有另一个时钟:单调时钟。 该时钟用于告诉两个时间点之间经过的时间。 + +挂钟可能会发生变化。例如,时钟可能会稍微提前。因此,系统可能需要将其与参考时钟同步。 + +因此,我们不能相信这个时钟能够提供经过时间的精确测量。 + +我们需要一个以恒定速率增加时间的时钟来正确测量经过的时间。这是单调时钟。 + +你可以在它的名字中找到恒定时间变化的概念:单调意味着“乏味、重复或缺乏多样性。”[@wiki-monotonous]。 + +使用这个时钟去计算持续时间。 + +## 6 格式化时间 + +在本节中,我们将研究一个非常常见的用例:格式化时间。 您可以通过多种方式格式化和显示程序中的时间; 有些是由规范指定的(例如,RFC 3339),有些不是,直接来自巧妙的开发人员的想法。 + +### 6.1 如何使用```Format```方法 + +```Format```方法只有一个参数:一个字符串 + +这个字符串告诉 Go 需要如何格式化时间。 如果你使用另一种语言,你可能会期待这样的事情: +``` +YYYY-MM-DD h:i:s +``` + +这里YYYY的意思是用四位数字显示年份; MM 指示程序用两位数显示月份...但在 Go 中,格式的写法不同: +``` +package main + +import ( + "fmt" + "time" +) + +func main() { + now := time.Now() + fmt.Println(now.Format("Mon Jan 2 ")) +} +``` +- 我们首先通过调用函数 time.Now() 来获取当前时间 +- 然后我们这次用Format方法格式化 +- 输出结果 + +此代码块将输出以下字符串: +``` +Wed Feb 13 +``` + +#### 6.1.0.1 参考时间 + +时间格式为“Mon Jan 2”。 这是因为 Go 中的格式是根据参考日期定义的: +``` +Mon Jan 2 15:04:05 -0700 MST 2006 +``` +- Monday +- January 2 from the year 2006 at 15:04:05 +- MST 指山地标准时间。 这是时区(UTC-7)。 + +### 6.2 特殊的时间格式 +| Cell 1 | Cell 2 | +在 ```time```包中,您会发现一些具有常见格式的常量: + + +| 规格 | Go 常量 |例子 | +|----------|----------|----- +| RFC 3339 | time.RFC3339 | 2019-02-13T13:48:10+01:00 | +| ANSIC | time.ANSIC | Wed Feb 13 13:49:17 2019 | +| RFC 822 | time.RFC822 | 13 Feb 19 13:49 CET | +| RFC 822 | time.RFC822Z | 13 Feb 19 13:50 +0100 | +| RFC 1123 | time.RFC1123 | Wed, 13 Feb 2019 13:51:06 CET | +| RFC 339 (with ns) | time.RFC3339Nano | 2019-02-13T13:51:44.298774+01:00 | +| UNIX | time.UnixDate | Wed Feb 13 13:52:29 CET 2019 | + +一些特殊的时间格式 + +以下是如何使用格式 **time.RFC3339**的示例: +``` +// dates-and-time/formatting/main.go +package main + +import ( + "fmt" + "time" +) + +func main() { + fmt.Println(time.Now().Format(time.RFC3339)) +} +``` + +输出: +``` +2019-02-15T13:20:36+01:00 +``` + +### 6.3 如何输出指定地点的时间 + +如果您向用户公开日期,您希望在他们各自的时区打印它们: +``` +// dates-and-time/location/main.go +package main + +//... + +func main() { + now := time.Now() + fmt.Printf("%s\n", now) + + loc, err := time.LoadLocation("America/New_York") + if err != nil { + panic(err) + } + + nowNYC := now.In(loc) + fmt.Printf("%s\n", nowNYC) +} +``` +输出: +``` +2021-02-11 18:45:36.949939 +0100 CET m=+0.000601934 +2021-02-11 12:45:36.949939 -0500 EST +``` + +这两个日期代表同一时间点,但位于两个不同的地点:法国和纽约。 + +函数 ```time.LoadLocation```接受一个字符串作为参数,它代表来自 IANA 时区数据库的时区名称。 + +## 7 如何解析字符串中包含的日期/时间 + +您可以使用时间包中的```Parse```函数。 这个函数有两个参数: +- 你要解析的时间格式(Go需要知道你输入的数据是什么格式) +- 包含您的时间格式的字符串 + +该函数将返回一个```time.Time```或一个错误(如果时间解析失败)。 这是一个例子: +``` +// dates-and-time/parse/main.go + +timeToParse := "2019-02-15T07:33-05:00" +t,err := time.Parse("2006-01-02T15:04-07:00",timeToParse) +if err != nil { + panic(err) +} + +fmt.Println(t) +``` + +- 我们将字符串“2019-02-15T07:33-05:00”放入变量timeToParse。 +- 调用```time.Parse``` + +我是如何设法找到正确的格式的? 您必须查看一个示例,然后构建格式字符串以使日期的每个部分与参考日期匹配。 + +当从 JSON 解析日期时,默认使用格式 ```time.RFC3339```。 + +## 8 如何获得两时间点之间经过的时间 + +要获取两时间之间经过的时间,您可以使用 ```time.Time``` 的方法 ```Sub``` : +``` +// dates-and-time/elapsed/main.go + +start := time.Now() +err := ioutil.WriteFile("/tmp/thisIsATest", []byte("TEST"), 0777) +if err != nil { + panic(err) +} +end := time.Now() +elapsed := end.Sub(start) +fmt.Printf("process took %s", elapsed) +``` +- 我们将当前时间保存在变量 start 中 +- 我们将数据写入文件。 +- 然后我们再次获取当前时间。 我们将时间保存到变量end中 +- 经过的持续时间是用 call ```end.Sub(start)``` 计算的 +- 我们输出返回的持续时间(elapsed 是 time.Duration 类型) + +![](imgs/3.png) + +## 9 time.Duration 类型 + +类型 ```time.Duration``` 表示两个时刻之间经过的时间。 这是它在标准库中的定义: + +``` +// Duration 表示两个瞬间之间经过的时间 +// 作为 int64 纳秒计数。 代表限制了 +// 最大可表示持续时间约为 290 年。 + type Duration int64 +``` +它的底层类型是 int64。 它表示两个时间点之间的纳秒数。 + +## 10 如何检查时间是否在两点之间 + +```time.Time``` 类型有两个方便的方法: +``` +Before + +After +``` +这两种方法都接受 time.Time 作为输入。 + +让我们举个例子: +``` +// dates-and-time/comparison/main.go + +location, err := time.LoadLocation("UTC") +if err != nil { + panic(err) +} + +firstJanuary1980 := time.Date(1980,1,1,0,0,0,0,location) + +timeToParse := "2019-02-15T07:33-02:00" +t,err := time.Parse("2006-01-02T15:04-07:00",timeToParse) +if err != nil { + panic(err) +} + +now := time.Now() +if t.After(firstJanuary1980) && t.Before(now) { + fmt.Println(t, "is between ", firstJanuary1980, "and",now) +}else { + fmt.Println("not in between") +} +``` +## 11 如何向时间添加天、小时、分钟、秒 + +- 当需要添加特定的天数、月数或年数时,可以使用 ```AddDate```方法 + + 该方法以三个整数作为参数: + 1. 年数 + + 2. 月数 + + 3. 天数 + +- 当您需要添加更具体的时间量时,您可以使用添加(例如:纳秒、微秒、毫秒、秒、分钟、小时)。 +``` +// dates-and-time/add/main.go + +now := time.Now() + +// + 12 years +// + 1 Month +// + 3 days +now = now.AddDate(12,1,3) + + +now = now.Add(time.Nanosecond * 1) +now = now.Add(time.Microsecond * 5)您希望每天在开始日期和结束日期之间向用户显示。 + +为此,您可以使用 AddDate 方法。 + +这三个数量将添加到日期中。 然后返回修改日期: +now = now.Add(time.Millisecond * 5) +now = now.Add(time.Second * 5) +now = now.Add(time.Minute * 5) +now = now.Add(time.Hour * 5) + +``` +时间包定义了以纳秒为单位表示纳秒、微秒、毫秒、秒、分钟和小时的常量。 我们可以使用这些常量来创建自定义持续时间。 + +## 12 时间迭代 + +您希望每天在开始日期和结束日期之间向用户显示。 + +为此,您可以使用 AddDate 方法。 + +这三个数量将添加到日期中。 然后返回修改日期: + +``` +start, err := time.Parse("2006-01-02", "2019-02-19") +startPlus1Day := start.AddDate(0,0,1) +``` +我们在开始日期中添加了一天、零个月和零年。 我们可以在 for 循环中使用这个函数来迭代两个限制日期之间的每一天: +``` +// dates-and-time/iterate/main.go + +func main() { + start, err := time.Parse("2006-01-02", "2019-02-19") + if err != nil { + panic(err) + } + end , err := time.Parse("2006-01-02", "2020-07-17") + if err != nil { + panic(err) + } + for i := start; i.Unix() < end.Unix(); i = i.AddDate(0, 0, 1) { + fmt.Println(i.Format(time.RFC3339)) + } +} +``` +这里我们定义了两个日期:开始和结束。 这些日期将代表我们的开始和停止时间点。 + +然后我们可以创建一个for循环。 for 循环由三部分组成: +1. init:这条指令在for循环开始前只执行一次 +2. 条件:这个表达式必须返回一个布尔值(真或假)。 在每次迭代之前都会对其进行评估。 如果它是假的,循环将停止。 +3. post语句:每次迭代后执行此语句 + +for 循环的 init 阶段很简单,我们创建了一个新变量 namedi。 然后我们在每次迭代之前检查结束日期(变量 end)是否大于当前迭代日期(变量 i)。 post 语句将在当前迭代日期上增加一天(使用 AddDate 方法)。 + +通过这个循环,我们将在开始和结束日期之间迭代每一天。 + +如果您想迭代几小时、几分钟或几秒怎么办? 您将不得不使用 Add 方法: + +``` +for i := start; i.Unix() < end.Unix(); i = i.Add(time.Minute*2) { + fmt.Println(i.Format(time.RFC3339)) +} +``` +我们没有在日期上加一天,而是加了 2 分钟。 因此,for 循环将带我们从 2019 年 2 月 2 日午夜到 2019 年 7 月 17 日,步长为 2 分钟。 这正好是 370.080 次迭代! + +## 13 自我测试 +### 13.1 问题 +1. UTC 的含义是什么? +2. 如何获取当前时间? +3. time.Duration 的基本类型是什么? +4. 正误判段. 2021-02-11 19:23:03.465196 +0100 CET, 2021-02-11 13:23:03.465196 -0500 EST 和 2021-02-11 18:25:196 分别代表三个不同的时间。 + +5. 如何将时间 t 添加 5 分钟? + +6. 如何将两年零一天添加到时间 t? + +### 13.2 答案 +1. What is the signification of UTC? + 1.协调世界时间 +2. 如何获取当前时间? + 1. time.Now() +3. time.Duration 的基本类型是什么? + 1. int64 +4. 正误判段. 2021-02-11 19:23:03.465196 +0100 CET, 2021-02-11 13:23:03.465196 -0500 EST 和 2021-02-11 18:25:196 分别代表三个不同的时间。 + 1. 错误,它们代表相同的时间点。 + 2. 2021-02-11 18:25:06.623301 +0000 UTC是这一时刻在 UTC 中的表示 + 3. 2021-02-11 19:23:03.465196 +0100 CET 是这一时刻与巴黎(法国)时区的表示 + 4. 2021-02-11 13:23:03.465196 -0500 EST 代表这一时刻与纽约(美国)时区 +5. 如何将时间 t 添加 5 分钟? + +``` +t = t.Add(time.Minute*5) +``` +6. 如何将两年零一天添加到时间 t? +``` +t = t.AddDate(2,0,1) +``` +## 14 关键要点 +- 时间包中包含了操作时间所需的一切。 + +- 要获取当前时间,您可以使用 time.Now() 返回一个 time.Time。 + +- 要将 time.Time 转换为字符串,您可以使用 Format 方法。 它接受一个字符串作为参数:layout。 + +- 要解析表示时间的字符串,可以使用函数 time.Parse(layout, value string)(time.Time, error) + +- **layout**是一个字符串,表示时间的“格式”。 + +- 布局带有参考日期:“Mon Jan 2 15:04:05 MST 2006” + +- 常用格式在时间包中定义为常量。 最常用的是```time.RFC3339``` + +- 可以使用 ```Before``` 和 ```After``` 方法进行两次比较 + +- ```time.Duration``` 表示两个时间点之间经过的持续时间。 + +- 您可以使用将 ```*time.Location``` 作为输入的方法 In 表示不同时区中的时间(可以使用 - +可以使用 ```Before``` 和 ```After``` 方法进行两次比较 + +- ```time.Duration``` 表示两个时间点之间经过的持续时间。 + +- 您可以使用将 ```*time.Location``` 作为输入的方法 In 表示不同时区中的时间(可以使用 ```time.LoadLocation(tzName)``` 加载) +----List_of_tz_database_time_zones +1. INNA:互联网号码分配机构 +2. 时区列表可参考:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones diff --git a/chap-28-Dates-and-time/imgs/3.png b/chap-28-Dates-and-time/imgs/3.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec005b86d13ca0aae21a8d6e9a10ae090a56a62 GIT binary patch literal 3365 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 Date: Mon, 14 Jun 2021 18:05:37 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=87=E9=A2=985?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chap-28-Dates-and-time/28.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chap-28-Dates-and-time/28.md b/chap-28-Dates-and-time/28.md index 8932015..70901e9 100644 --- a/chap-28-Dates-and-time/28.md +++ b/chap-28-Dates-and-time/28.md @@ -74,7 +74,7 @@ now := time.Now() log.Println(now.Unix()) // > 2021/02/11 18:29:35 1613064575 ``` -## 5 同一个时间,不同的时钟 +## 5 同一个时间点,不同的时钟 从计算机的角度来看,我们通常所说的“时间”有不同的含义。 但是为了更好地理解这些特殊含义,我们首先需要了解计算机如何跟踪时间。 ### 5.1 硬件时钟 -- Gitee