44

我需要以 hh:mm:ss:SS 格式获取 Android 设备时间戳。我可以查看 Eclipse 的 Logcat 中显示的时间。是电脑的时间还是安卓设备的时间?

4

6 回答 6

90

logcat 的文档中,您可以看到有一个选项可以指定输出的格式(-v)。

要获取时间戳,可以使用命令

logcat -v time

这将为每条消息添加时间戳。

于 2013-02-27T14:16:29.300 回答
20

在终端中使用adb logcat -v threadtime 从设备获取日志,它将包括日期和时间。

如果要将这些日志重定向到文本文件中,请在终端中使用命令。

 adb logcat -v threadtime > folder_path_in_the_computer/filename.txt
于 2015-02-03T16:50:55.713 回答
9

如果您在 Android 设备上运行您的应用程序,那么它将打印设备的时间,如果在模拟器上,它将显示计算机的时间。

为确保将日志的时间与设备的时间和计算机的时间相匹配,您会找到答案。

于 2013-02-27T14:15:13.387 回答
9

使用long,threadtimetime格式与logcat -v <format>

logcat有许多格式选项,可以-v在命令行中传递给标志。您可以在此处查看文档中的所有格式。

以下是每个选项的示例,因此您可以决定哪个选项适合您的需求:


brief

显示发出消息的进程的优先级、标记和 PID。

D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)

long

显示所有元数据字段并用空行分隔消息。

(我最喜欢这个,但我很喜欢空白。)

[ 01-27 13:17:07.703  1222: 1222 D/StatusBar.NetworkController ]
refreshNwBoosterIndicator - setNWBoosterIndicators(false)

[ 01-27 13:17:07.703  1222: 1222 D/StatusBar.NetworkController ]
refreshNwBoosterIndicator - setNWBoosterIndicators(false)

process

仅显示 PID。

D( 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)  (StatusBar.NetworkController)
D( 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)  (StatusBar.NetworkController)

raw

显示没有其他元数据字段的原始日志消息。

refreshNwBoosterIndicator - setNWBoosterIndicators(false)
refreshNwBoosterIndicator - setNWBoosterIndicators(false)

tag

仅显示优先级和标签。

D/StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D/StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)

thread

显示发出消息的线程的优先级、PID 和 TID 的传统格式。

D( 1222: 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D( 1222: 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)

threadtime

显示发出消息的线程的日期、调用时间、优先级、标记、PID 和 TID。

(文档说这是默认设置,但在我的情况下并非如此。)

01-27 13:17:07.703  1222  1222 D StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
01-27 13:17:07.703  1222  1222 D StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)

time

显示发出消息的进程的日期、调用时间、优先级、标记和 PID。

01-27 13:17:07.703 D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
01-27 13:17:07.703 D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)

注意:如果您在应用程序中使用它以编程方式收集用户的设备日志以发送给您的支持团队或其他任何东西,您需要省略 和 之间的空格-vformat如下所示:

commandLine.add( "-vlong" )

不知道为什么会这样,但希望这可以节省一些人试图弄清楚这一点的时间。

于 2018-01-27T19:16:56.853 回答
1

取自开发者网站上的读写日志:

" time — 显示发布消息的进程的日期、调用时间、优先级/标签和 PID。"

在模拟器上,这将是您的计算机时间,在设备上,它将是您设备的时间......

于 2013-02-27T14:18:24.360 回答
0

如果您以编程方式需要设备日期:

 SimpleDateFormat s = new SimpleDateFormat("hh:mm:ss");
    String format = s.format(new Date());
于 2013-02-27T14:12:00.760 回答