[1-9][0-9]{3}-.+T[^.]+(Z|[+-].+)
(удалены ненужные экранированные символы), потому что ваша тестовая строка не соответствует правилам регулярного выражения:
[1-9][0-9]{3} # match a four-digit number > 999 : 2011
- # dash : -
.+ # one or more unspecified characters : 06-167
T # a T : T
[^.]+ # one or more characters except dot : 09:30:47
( # followed by either :
Z # a Z : ???
| # or :
[+-] # a plus or minus sign : ???
.+ # and one or more unspecified characters :
)
Ваша тестовая строка 2011-06-167T09:30:47.0Z
содержит точку перед Z
(и нет знака плюс / минус, который позволял бы альтернативе совпадать), поэтому регулярное выражение не выполняется.
Вопрос: каким правилам вы должны следовать?Как в вашем приложении определены даты и время?