diff --git a/src/android/jpeg/exif.cpp b/src/android/jpeg/exif.cpp
index 031f5f4..d8b4537 100644
--- a/src/android/jpeg/exif.cpp
+++ b/src/android/jpeg/exif.cpp
@@ -135,6 +135,16 @@ void Exif::setShort(ExifIfd ifd, ExifTag tag, uint16_t item)
 	exif_entry_unref(entry);
 }
 
+void Exif::setSShort(ExifIfd ifd, ExifTag tag, int16_t item)
+{
+	ExifEntry *entry = createEntry(ifd, tag);
+	if (!entry)
+		return;
+
+	exif_set_sshort(entry->data, EXIF_BYTE_ORDER_INTEL, item);
+	exif_entry_unref(entry);
+}
+
 void Exif::setLong(ExifIfd ifd, ExifTag tag, uint32_t item)
 {
 	ExifEntry *entry = createEntry(ifd, tag);
@@ -194,6 +204,26 @@ void Exif::setTimestamp(time_t timestamp)
 	setString(EXIF_IFD_0, EXIF_TAG_DATE_TIME, EXIF_FORMAT_ASCII, ts);
 	setString(EXIF_IFD_EXIF, EXIF_TAG_DATE_TIME_ORIGINAL, EXIF_FORMAT_ASCII, ts);
 	setString(EXIF_IFD_EXIF, EXIF_TAG_DATE_TIME_DIGITIZED, EXIF_FORMAT_ASCII, ts);
+
+	/* If possible, query and set timezone information via
+	 * EXIF_TAG_TIME_ZONE_OFFSET. There is only per-hour resolution for tag
+	 * hence, round up hours if minutes >= 30.
+	 */
+	char tz[6];
+	int r = std::strftime(tz, sizeof(tz), "%z", std::localtime(&timestamp));
+	if (r > 0) {
+		int16_t timezone = atoi(tz);
+		int16_t hour = timezone / 100;
+		int16_t min = abs(timezone) - (abs(hour) * 100);
+
+		if (tz[0] == '-' && min >= 30)
+			hour--;
+		else if (min >= 30)
+			hour++;
+
+		/* \todo Check if EXIF IFD is correct here or not. */
+		setSShort(EXIF_IFD_EXIF, EXIF_TAG_TIME_ZONE_OFFSET, hour);
+	}
 }
 
 void Exif::setOrientation(int orientation)
diff --git a/src/android/jpeg/exif.h b/src/android/jpeg/exif.h
index 622de4c..4817815 100644
--- a/src/android/jpeg/exif.h
+++ b/src/android/jpeg/exif.h
@@ -37,6 +37,7 @@ private:
 			       unsigned long components, unsigned int size);
 
 	void setShort(ExifIfd ifd, ExifTag tag, uint16_t item);
+	void setSShort(ExifIfd ifd, ExifTag tag, int16_t item);
 	void setLong(ExifIfd ifd, ExifTag tag, uint32_t item);
 	void setString(ExifIfd ifd, ExifTag tag, ExifFormat format,
 		       const std::string &item);
