2

如何获取设备的当地时间并将其转换为我所在国家/地区的全球 UTC 格式?

4

2 回答 2

5

根本不获取本地时间 - 只需获取 UTC 值即可,例如

long millis = System.currentTimeMillis();

或者:

Date date = new Date();

如果您需要将其格式化为字符串,请使用SimpleDateFormat但请记住适当设置时区。例如:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
                                               Locale.US);
format.setTimeZone(TimeZone.getTimeZone("Etc/Utc"));
String text = format.format(new Date());

(不清楚“我的国家的全球 UTC 格式”是什么意思 - UTC 只是全球性的,它不是一种格式,它是一个时区。)

于 2012-11-09T16:05:06.933 回答
1

不知道你想做什么,但如果你想要正常格式的日期和时间,你可以这样做:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
Calendar cal = Calendar.getInstance();
String dateAndTime = dateFormat.format(cal.getTime());

根据设备设置的日期和时间,字符串 dateAndTime 类似于2012/01/01 11:13,因此它显示与设备时钟相同的时间。"yyyy/MM/dd HH:mm"您可以通过更改为您喜欢的任何格式来稍微调整一下格式。

希望这可以帮助!

更新:要获得 UTC 时间,请这样做:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateAndTimeUTC = dateFormat.format(new Date());
于 2012-11-09T16:13:03.583 回答