wiresharkの-Tfields

今日もwiresharkのソース読んでた
tsharkで -te -Tfields -e frame.time オプションつけてフレームの届いた時刻を出そうとしても、epoch にならずにこーなる。

Oct 12, 2008 15:48:08.871946000

日付の出し方がイマイチ不明(%dか%eか)なのでソースチェック。

$ ack %b
epan/ftypes/ftype-time.c
243: curptr = strptime(s,"%b %d, %Y %H:%M:%S", &tm);

%bで引っかかったところで、同じ形式はここなので、恐らくここかな。
strptimeはパースする関数だからstrftimeで探したけど該当したものはない。
どこから呼ばれているか確認しようとしてgtags待ち。(昨日パッチ書いて消してしまった)

とりあえず、時刻のパースはコレで

#!/usr/bin/perl
use Time;:Piece;

my $date = 'Oct 12, 2008 15:48:08.871946000';
$date =~ s/\.[0-9]{9}$//;
my $t = Time::Piece->strptime($date,"%b %d, %Y %H:%M:%S);
print $t->datetime;

2008-10-12T15:48:08