如何查看时区差异?
How to see the timezone difference?
UTC 时区 - 时区用户
我将我的数据库值作为时间戳存储在 UTC 中,并在我的应用程序中检索它。
但我需要知道与 subtract/add 用户时区的区别。
所以...
我设法通过创建 2 个时间戳(UTC 中的当前时间戳 - 当前时间戳)和 adding/subtracting 存储在数据库中的值来做到这一点。
但我想知道是否有更简单的方法来做到这一点,我考虑过将日期保存为字符串...
有没有人有任何提示或更好的方法来做这样的事情?
您必须在您的云服务器上存储 UTC 时间,并且在从 API 获取数据后,您需要进行一些计算以将您的 UTC 时间转换为当前用户时区,如下所示。
String dateStr = "Jul 16, 2013 12:08:59 AM";
SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss a", Locale.ENGLISH);
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = df.parse(dateStr);
df.setTimeZone(TimeZone.getDefault());
String formattedDate = df.format(date);
您应该只存储 UTC 时间。
并基于您的用户时区(您为用户提供设置时区的选项)。然后根据应用用户的设置,您将 him/her 时间显示为 his/her 时区。
- 导入java.util.TimeZone
- 然后检索保存在数据库中的 UTC 时间。
- 转换它 java 日期对象 (java.util.Date)
- 然后设置用户的时区。
- 然后将 UTC 日期时间转换为用户的时区
Date date = new Date(/*Your stored UTC datetime */)
DateFormat df = new SimpleDateFormat("dd-MM-yy HH:mm:SS z");
df.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
String sDate = df.format(date);
UTC 时区 - 时区用户
我将我的数据库值作为时间戳存储在 UTC 中,并在我的应用程序中检索它。
但我需要知道与 subtract/add 用户时区的区别。
所以... 我设法通过创建 2 个时间戳(UTC 中的当前时间戳 - 当前时间戳)和 adding/subtracting 存储在数据库中的值来做到这一点。
但我想知道是否有更简单的方法来做到这一点,我考虑过将日期保存为字符串...
有没有人有任何提示或更好的方法来做这样的事情?
您必须在您的云服务器上存储 UTC 时间,并且在从 API 获取数据后,您需要进行一些计算以将您的 UTC 时间转换为当前用户时区,如下所示。
String dateStr = "Jul 16, 2013 12:08:59 AM";
SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss a", Locale.ENGLISH);
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = df.parse(dateStr);
df.setTimeZone(TimeZone.getDefault());
String formattedDate = df.format(date);
您应该只存储 UTC 时间。
并基于您的用户时区(您为用户提供设置时区的选项)。然后根据应用用户的设置,您将 him/her 时间显示为 his/her 时区。
- 导入java.util.TimeZone
- 然后检索保存在数据库中的 UTC 时间。
- 转换它 java 日期对象 (java.util.Date)
- 然后设置用户的时区。
- 然后将 UTC 日期时间转换为用户的时区
Date date = new Date(/*Your stored UTC datetime */)
DateFormat df = new SimpleDateFormat("dd-MM-yy HH:mm:SS z");
df.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
String sDate = df.format(date);