- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
String time = DateUtils.formatDateTime(context, 1469602800000, DateUtils.FORMAT_SHOW_TIME);
结果是:03:00
符合预期
我当前的时区是:GMT+3:00 DST
但是,如果我不能将时区传递给 dateformatter
,我如何才能得到:“00:00
”?
我已经试过了:
TimeZone timeZone = getTimezoneForId("America/Los_Angeles");
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(timeZone);
calendar.setTimeInMillis(1469602800000);
String time = new SimpleDateFormat("HH:mm", Locale.getDefault()).format(calendar.getTime());
但我得到了相同的结果:“03:00
”
最佳答案
我得到了 DateUtils
的解决方案,而没有使用像 Calendar
甚至 SimpleDateFormat
这样沉重的对象。
// Your UTC time in milliseconds:
long timeInMillis = 1469602800000;
// Desired timezone ID:
String timezoneId = "UTC";
java.util.Formatter f = new java.util.Formatter(new StringBuilder(50), Locale.getDefault());
String time = DateUtils.formatDateRange(context, f, timeInMillis, timeInMillis, DateUtils.FORMAT_SHOW_TIME, timezoneId).toString();
解释:
如果你看源码,你会发现当你调用的时候
formatDateTime(Context context, long millis, int flags)
返回调用结果
formatDateRange(context, millis, millis, flags);
具体实现如下:
public static String formatDateRange(Context context, long startMillis,long endMillis, int flags) {
Formatter f = new Formatter(new StringBuilder(50), Locale.getDefault());
return formatDateRange(context, f, startMillis, endMillis, flags).toString();
}
再次查看源代码
formatDateRange(context, f, startMillis, endMillis, flags)
您将看到以下内容:
return formatDateRange(context, formatter, startMillis, endMillis, flags, null);
如果仔细查看最后一行,您会发现它提供了 null
作为 String timezone
参数。因此,根据该方法的注释,它将计算您的本地 时区的值。官方文档建议使用 Time.TIMEZONE_UTC
,但该功能已被弃用,因此在我的解决方案中我明确设置了时区 (timezoneId = "UTC"
)。您可以设置您需要的任何时区,例如“太平洋/火奴鲁鲁”甚至“亚洲/新西伯利亚”。这是 complete list of timezones IDs 的链接.
请注意
time
字符串在特定的语言环境中进行格式化,请初始化 Formatter
,提供该特定的语言环境作为初始化参数。time
字符串将根据设备的默认区域设置正确格式化。但是,如果您想使用特定格式来表示时间,并且在所有设备上都保持一致,请使用 SimpleDateFormat
。关于Android DateUtils.formatDateTime 时区错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594746/
我在玩dateutil module在 Python 2.7.3 中。我只是想使用: import dateutil dateutil.parser.parse("01-02-2013") 但我得到了
Java 文档中不清楚 DateUtils.ceiling 之间的区别是什么和 DateUtils.truncate是。 java文档错了吗?有人可以澄清一下吗? ceiling public sta
尝试使用 dateutil 解析未知格式的日期,但没有找到任何记录的方法? 代码: import dateutil print(dateutil.parser.parse("24.05.2017"))
我是 Python 新手。有人可以建议我如何处理错误 "ImportError: matplotlib requires dateutil"。我已经经历了类似的问题,但我已经按照那里提到的步骤下载了文
我在使用 python dateutil.zoneinfo 模块时遇到问题。注意: 损坏的 Ubuntu 机器是 ( Ubuntu 11.04 ) 工作的 Ubuntu 机器是 ( Ubuntu 11
我在这里遗漏了一些显然很简单的东西,但我不能说什么:我需要你的新眼光来告诉我:) $ pip install python-dateutil Requirement already satisfied
我试图在调用DateUtil.addDays的天数中使用一个变量,但是它不起作用。我是否缺少一些简单的东西,或者只是行不通? //Example: x = 10 //this int is the
如果我有以下字符串列表: a = ['Loc_RaffertytoLong_2004_02_21', 'Loc_RaffertytoLong_2004_02_22', 'Loc_Raffertyt
我正在尝试使用 apache-commons3 中的 DateUtils,但无法理解它所依赖的时区: Date date = DateUtils.truncate(date, Calendar.DAT
我正在使用 java DateUtils类 public boolean checkDate(String dateInString, String format){ try {
我在下面的示例代码中收到以下错误。我不确定导致错误的原因或原因,因为此代码过去运行良好。我正在使用 Python 2.7 AttributeError: 'module' object has no
r = [['21-09-1995', 3], ['22-11-1995', 2] , ['07-01-1988', 6], ['test', 4], ['12-12-2001', 5]] 有谁知道如
我使用 dateutil 解析日期得到以下堆栈跟踪: >>> dateutil.parser.parse('Sept 18 2014', fuzzy=True).date() Traceback (m
Python dateutil 正确解析字符串,但字符串的秒部分除外。 In [1]: from dateutil import parser In [2]: parser.parse("05/09/
我正在尝试解析从电子邮件标题中获取的以下日期字符串: from dateutil import parser d1 = parser.parse('Tue, 28 Jun 2011 01:46:52
我正在尝试将字符串类型的参数转换为日期时间。我正在使用 dateUtil 库 from dateutil import parser myDate_string="2001/9/1 12:00:0
我试图在执行 preparedStatement 之前更改服务器的时间。服务器时间是 EDT,我想在 preparedStatement 中使用它之前添加 6 个小时。 目前我收到这个错误: Date
我正在尝试查看日期列表是否为有效日期。我正在使用 dateutil 库,但我得到了奇怪的结果。例如,当我尝试以下操作时: import dateutil.parser as parser x = '1
有谁知道为什么 python 的 dateutil 在解析 datetime 字段时会反转 GMT 偏移量的符号? 显然这个特征是 known outcome不仅是 dateutil,还有其他解析函数
我正在使用 sixohsix 库从 Twitter API 解析一些推文数据。我正在尝试将推文的日期转换为我的语言环境: from pytz import timezone from dateutil
我是一名优秀的程序员,十分优秀!