Oleg Butuzov 646c8b39da bugfix (mmcgrana/gobyexample#294) sha1 sum calculator
This bugfix implements correct way to calculate source sha1 hash, before it will changed,
by propagation of unchanged sources.

This commit will also include regenerated static files and *.hash files.
2019-10-22 14:27:02 +03:00

185 lines
6.9 KiB
Plaintext
Generated

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Go by Example: Epoch</title>
<link rel=stylesheet href="site.css">
</head>
<script>
onkeydown = (e) => {
if (e.key == "ArrowLeft") {
window.location.href = 'time';
}
if (e.key == "ArrowRight") {
window.location.href = 'time-formatting-parsing';
}
}
</script>
<body>
<div class="example" id="epoch">
<h2><a href="./">Go by Example</a>: Epoch</h2>
<table>
<tr>
<td class="docs">
<p>A common requirement in programs is getting the number
of seconds, milliseconds, or nanoseconds since the
<a href="http://en.wikipedia.org/wiki/Unix_time">Unix epoch</a>.
Here&rsquo;s how to do it in Go.</p>
</td>
<td class="code empty leading">
</td>
</tr>
<tr>
<td class="docs">
</td>
<td class="code leading">
<a href="http://play.golang.org/p/0ooeler0RfR"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
</td>
<td class="code leading">
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
<span class="s">&quot;fmt&quot;</span>
<span class="s">&quot;time&quot;</span>
<span class="p">)</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
</td>
<td class="code leading">
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<p>Use <code>time.Now</code> with <code>Unix</code> or <code>UnixNano</code> to get
elapsed time since the Unix epoch in seconds or
nanoseconds, respectively.</p>
</td>
<td class="code leading">
<div class="highlight"><pre> <span class="nx">now</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
<span class="nx">secs</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">Unix</span><span class="p">()</span>
<span class="nx">nanos</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">UnixNano</span><span class="p">()</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">now</span><span class="p">)</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<p>Note that there is no <code>UnixMillis</code>, so to get the
milliseconds since epoch you&rsquo;ll need to manually
divide from nanoseconds.</p>
</td>
<td class="code leading">
<div class="highlight"><pre> <span class="nx">millis</span> <span class="o">:=</span> <span class="nx">nanos</span> <span class="o">/</span> <span class="mi">1000000</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">secs</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">millis</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nanos</span><span class="p">)</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<p>You can also convert integer seconds or nanoseconds
since the epoch into the corresponding <code>time</code>.</p>
</td>
<td class="code">
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="nx">secs</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">nanos</span><span class="p">))</span>
<span class="p">}</span>
</pre></div>
</td>
</tr>
</table>
<table>
<tr>
<td class="docs">
</td>
<td class="code leading">
<div class="highlight"><pre><span class="gp">$</span> go run epoch.go
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span>
<span class="go">1351700038</span>
<span class="go">1351700038292</span>
<span class="go">1351700038292387000</span>
<span class="go">2012-10-31 16:13:58 +0000 UTC</span>
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<p>Next we&rsquo;ll look at another time-related task: time
parsing and formatting.</p>
</td>
<td class="code empty">
</td>
</tr>
</table>
<p class="next">
Next example: <a href="time-formatting-parsing">Time Formatting / Parsing</a>.
</p>
<p class="footer">
by <a href="https://markmcgranaghan.com">Mark McGranaghan</a> | <a href="https://github.com/mmcgrana/gobyexample/blob/master/examples/epoch">source</a> | <a href="https://github.com/mmcgrana/gobyexample#license">license</a>
</p>
</div>
<script>
var codeLines = [];
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"fmt\"\u000A \"time\"\u000A)\u000A');codeLines.push('func main() {\u000A');codeLines.push(' now := time.Now()\u000A secs := now.Unix()\u000A nanos := now.UnixNano()\u000A fmt.Println(now)\u000A');codeLines.push(' millis := nanos / 1000000\u000A fmt.Println(secs)\u000A fmt.Println(millis)\u000A fmt.Println(nanos)\u000A');codeLines.push(' fmt.Println(time.Unix(secs, 0))\u000A fmt.Println(time.Unix(0, nanos))\u000A}\u000A');codeLines.push('');codeLines.push('');
</script>
<script src="site.js" async></script>
</body>
</html>