title: Spark Strutured Streaming automatically converts timestamp to local time
body: <p>I have my timestamp in UTC and ISO8601, but using Structured Streaming, it gets automatically converted into the local time. Is there a way to stop this conversion? I would like to have it in UTC.</p>
  
  <p>I'm reading json data from Kafka and then parsing them using the <code>from_json</code> Spark function.</p>
  
  <p>Input:</p>
  
  <pre><code>{"Timestamp":"2015-01-01T00:00:06.222Z"}
  </code></pre>
  
  <p>Flow:</p>
  
  <pre><code>SparkSession
    .builder()
    .master("local[*]")
    .appName("my-app")
    .getOrCreate()
    .readStream()
    .format("kafka")
    ... //some magic
    .writeStream()
    .format("console")
    .start()
    .awaitTermination();
  </code></pre>
  
  <p>Schema:</p>
  
  <pre><code>StructType schema = DataTypes.createStructType(new StructField[] {
          DataTypes.createStructField("Timestamp", DataTypes.TimestampType, true),});
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>+--------------------+
  |           Timestamp|
  +--------------------+
  |2015-01-01 01:00:...|
  |2015-01-01 01:00:...|
  +--------------------+
  </code></pre>
  
  <p>As you can see, the hour has incremented by itself.</p>
  
  <p>PS: I tried to experiment with the <code>from_utc_timestamp</code> Spark function, but no luck.</p>