public function readDateWithoutTag()
{
$ymd = $this->stream->read(8);
$hms = '000000';
$u = '000000';
$tag = $this->stream->getc();
if ($tag == Tags::TagTime) {
$hms = $this->stream->read(6);
$tag = $this->stream->getc();
if ($tag == Tags::TagPoint) {
$u = $this->stream->read(3);
$tag = $this->stream->getc();
if ($tag >= '0' && $tag <= '9') {
$u .= $tag . $this->stream->read(2);
$tag = $this->stream->getc();
if ($tag >= '0' && $tag <= '9') {
$this->stream->skip(2);
$tag = $this->stream->getc();
}
} else {
$u .= '000';
}
}
}
if ($tag == Tags::TagUTC) {
$date = date_create_from_format('YmdHisu', $ymd . $hms . $u, timezone_open('UTC'));
} else {
$date = date_create_from_format('YmdHisu', $ymd . $hms . $u);
}
$this->refer->set($date);
return $date;
}