title: How to get the max timestamp of the current sliding window
body: <p>I'm using a sliding time window of X size and Y period. In order to mark the output of each window, I'd like to get the timestamp of the current window of PCollection.</p>
  
  <pre class="lang-java prettyprint-override"><code>    PCollection&lt;T&gt; windowedInput = input
        .apply(Window&lt;T&gt;into(
            SlidingWindows.of(Duration.standardMinutes(10))
                          .every(Duration.standardMinutes(1))));
  
     // Extract key from each input and run a function per group.
     //
     // Q: ExtractKey() depends on the window triggered time.
     //    How can I pass the timestamp of windowedInputs to ExtractKey()?
     PCollection&lt;KV&lt;K, Iterable&lt;T&gt;&gt;&gt; groupedInputs = windowedInputs
       .apply(ParDo.of(new ExtractKey()))
       .apply(GroupByKey.&lt;K, Ts&gt;create());
  
     // Run Story clustering and write outputs.
     //
     // Q: Also I'd like to add a window timestamp suffix to the output.
     //    How can I pass (or get) the timestamp to SomeDoFn()?
     PCollection&lt;String&gt; results = groupedInputs.apply(ParDo.of(new SomeDoFn()));
  </code></pre>