21 / 6 / 2
Регистрация: 26.10.2012
Сообщений: 205
Записей в блоге: 1
1

Ошибка в "time-zone name" при конвертации строки в Date

02.08.2017, 18:44. Показов 872. Ответов 2
Метки date (Все метки)

Доброго дня.
Получаю время в виде "26.06.2017 18:44:53 MSK". Написал маску для него: "dd.MM.yyyy HH:mm:ss z"
Java
1
2
3
Date date=new Date();
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z");
date = df.parse("26.06.2017 18:44:53 MSK");
Получаю ошибку java.text.ParseException: Unparseable date: "26.06.2017 18:44:53 MSK" (at offset 20)

offset 20 - двадцатый символ - это получается пробел между секундами и названием временной зоны. Исправлял z на Z - не помогает. Вообще убрал из маски z - сработало (правда подставился GMT+03 взятое из системы но главное всё остальное распарсилось нормально).

Что может быть не так с именем временной зоны и/или маской времени, z?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2017, 18:44
Ответы с готовыми решениями:

Ошибка: Project Project4.exe raised exception class EConvertError with message "Болонское" is not a valid date and time'
При выскакивании ошибки, программа помечает 67-76 строку (Я сделал переносы чтобы было приятнее...

Ошибка после конвертации метода на С++ к С#: "Неявное преобразование типа "int" в "bool" невозможно"
Ошибка после преобразования метода на С++ к С#: "Неявное преобразование типа "int" в "bool"...

Ошибка "Приведение строки "explorer.exe" к типу "Double" является недопустимым" при записи в реестр
Помогите, хочу получить доступ к winlogon, что бы изменять любое другое значение shell на...

Ошибка при запуске .exe файла из debug: "Приведение строки "Июнь" к типу "Double" является недопустимым"
Если запускать из самого проекта(F5), то все нормально, а если скомпилированный запустить, то...

2
634 / 526 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
03.08.2017, 20:07 2
В документацию смотреть пробовал?

SimpleDateFormat не умеет в часовые пояса по имени, только по смещению. Тебе должен помочь DateTimeFormatter
0
Эксперт Java
3948 / 2557 / 463
Регистрация: 28.04.2012
Сообщений: 8,325
04.08.2017, 09:45 3
Цитата Сообщение от aleksandy Посмотреть сообщение
В документацию смотреть пробовал?
А ты?

z --- Time zone --- General time zone --- Pacific Standard Time; PST; GMT-08:00
arvalon, у меня всё работает без проблем:

Java
1
2
3
4
5
    public static void main(String[] args) throws Exception {
        final DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z");
        final Date date = df.parse("26.06.2017 18:44:53 MSK");
        System.out.println(df.format(date));
    }
=>
Код
run:
26.06.2017 18:44:53 MSK
BUILD SUCCESSFUL (total time: 0 seconds)
У тебя какая версия JDK? Может, в ней баг какой-то есть.

Тут пишут, что желательно указывать локаль в SimpleDateFormat, иначе может не работать:
Note that it's also a good practice to put a Local in your DateFormat. Without it your code won't work in other countries (like here in France...).
Однако у меня работает как без указания локали, так и с указанием (я попробовал несколько: US, FRANCE, GERMAN, JAPAN, а также Locale.getDefault()), но попробуй, вдруг у тебя в этом дело:

Java
1
new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z", Locale.US)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2017, 09:45
Помогаю со студенческими работами здесь

Исключение std::stoi при попытке конвертации строки "10.34" в целое число
В программе используется std::stoi, но при конвертации строки, представляющей число с десятичным...

FormatDateTime выдаёт ошибку "is not a valid date and time"
var fs: TFormatSettings; begin Application.UpdateFormatSettings := False; ...

Форма для ввода даты и времени "Date time picker"
Всем добрый день! Помогите пожалуйста разобраться с формой для ввода даты и времени! Скачал...

VS2013 выдаёт ошибку Ошибка 1 error C2079: "d" использует неопределенный struct "DATE"
Привет всем. Подскажите пожалуйста, почему VS2013 выдаёт ошибку Ошибка 1 error C2079: "d"...

Ошибка при открытии проекта "Invalid argument to date encode"
При открытии курсовой работі пишет: ''Invalid argument to date encode''? Помогите найти решение.

При выполнении запроса выскакивает ошибка "Operand type clash: date is incompatible with int"
Всем доброго дня! Я использовал данный запрос: SELECT Филиал.Название_филиала,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru