powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / преобразование строки в дату в форамте YYYY-MM-DD
13 сообщений из 13, страница 1 из 1
преобразование строки в дату в форамте YYYY-MM-DD
    #39412706
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем
Ява 1.8
(в яве я слабоват)

3 днеь не могу найти как проверить строку в формате даты YYYY-MM-DD
(я читаю из файла Csv и оч. удивился что
даты типа 9999-98-93 не ушли в лог плохих записей
ибо успешно скастились в завдомо большу дату )
демо пример

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class dmy_test {
	public static void main(String[] args) 

DateFormat sdf1 = new SimpleDateFormat("YYYY-MM-DD");
DateFormat sdf2 = new SimpleDateFormat("YYYY-MM-DD HH:MM");
 
 Date d1= null;
 Date d2= null;
 String s1= "9999-99-99" ;
 String s2= "9999-99-99 24:99" ;

 try {
		d1 = sdf1.parse(s1);
		d2 = sdf2.parse(s2);  
	} 
	catch ( Exception e) {
		e.printStackTrace();
	}
 System.out.println("format1 : " + sdf1.format(d2));
 System.out.println("format2 : " + sdf2.format(d2));


-- успешно кастится и выводит
format1 : 9999-12-361
format2 : 9999-12-361 00:12
я просто офигеваю
361 и это DD ?

http://stackoverflow.com/questions/20231539/java-check-the-date-format-of-current-string-is-according-to-required-format-or
тут советую проверять еещ как регулярные выражения но
YYYY-MM-DD 2001-10-12 Корректна
YYYY-MM-DD 2001-23-01 Нет ибо нет 23 месяца
наверянка должны быть jar в к-х это делается реализовано и делатеся легко
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412709
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412733
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#setLenient(boolean)
да мне уже советовал жавист

Код: java
1.
2.
SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);



с днями надо малые dd : YYYY-MM- dd


но теперь

s1 :: 2001-01-01
d1 :: Sun Dec 31 00:00:00 MSK 2000
d1 format1 : 2001-12-31
чудеса на виражах
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412739
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорда мне уже советовал жавист

Зачем тогда спрашивать?

Гулин Федорs1 :: 2001-01-01
d1 :: Sun Dec 31 00:00:00 MSK 2000
d1 format1 : 2001-12-31
чудеса на виражах
Продолжаем игнорировать документацию
http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#setTimeZone(java.util.TimeZone)
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412745
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
СПС за наводку
спраишваю потому что пока совет не помогло

смотрю счас какую ему тайм-зону ставить
мне это точно НЕ очевидно - ни метод setLenient

зы а есть ли хелп офф-лайн явы (жел 1.8) к-й можно поставтить в Эклипс
если да то плз напишите

ззы или я можте пропустил - где то есть станд. примеры ?
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412750
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdf1.getTimeZone() :
sun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=10800000,dstSavings=0,useDaylight=false,transitions=69,lastRule=null]

вот сижу и думаю что это мне дает

зы да нелегкая задача оказыаввется преобразовать строку YYYY-MM-DD в дату
по t-sql привычке я думал решается вызовом 1-й ф-ции
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412796
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор,

Вроде вам уже давали ссылку на документацию
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

должно быть

" yyyy-MM-dd " - регистр букв имеет значение.
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412821
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор,

В JDK есть файл src.zip с исходным кодом открытых классов. Документация пишется в коде классов. IDE умеют оттуда её показывать. Можно отдельно скачать javadoc и подключить в IDE
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39412859
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорsun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=10800000,dstSavings=0,useDaylight=false,transitions=69,lastRule=null]

вот сижу и думаю что это мне дает
Даёт выражения порицания со стороны общественности. Не следует использовать недокументированные классы, каковыми являются все с пакетом sun. ... и никогда не бывает необходимости в этом. Если вам кажется, что нужно, значит вы не изучили тему.
Так что совет использовать src.zip не полезный.

авторнелегкая задача оказывается преобразовать строку YYYY-MM-DD в дату

Лёгкая. Впрочем, для действий с датами я пользуюсь библиотекой Joda Time, а не JDK. Но пришлось бы объяснять, как ею пользоваться.

автора есть ли хелп офф-лайн явы (жел 1.8) к-й можно поставтить в Эклипс
Разумеется, есть. Надо списать с сайта Oracle JavaDoc-и, которые там есть в виде zip-архива. Потом подсоединить их к JDK тем же способом, которым в Eclipse подсоединяются JavaDoc к библиотекам - выбрать библиотеку (в данном примере JDK), в ней выбрать пункт JavaDoc и указать расположение zip-файла вместо https://docs.oracle.com/javase/8/docs/api/ и дополнительно путь внутри архива (проверить путь кнопкой Validate). Вместо этого zip можно разархивировать и выбрать путь к JavaDoc.

автор оч. удивился что
даты типа 9999-98-93 не ушли в лог плохих записей

Лучше оч. удивиться, почему такие записи существуют.
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39413218
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan M,
СПС за совет про хелп - попробую обязательн подключить

Лучше оч. удивиться, почему такие записи существуют.
я вбивал в тест. CSV просто с увереннностью что они уйдут в плохие

но как определить валидность дат в формате YYYY-MM-DD
Я так и не понял

зы я хочу простой аналог CAST and CONVERT (Transact-SQL)
чтобы указать корректный формат даты и чтобы оно скаситло строку в дату - если нет выдало ексепшн
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39413226
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickГулин Федор,

Вроде вам уже давали ссылку на документацию
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

должно быть

" yyyy-MM-dd " - регистр букв имеет значение.
да СПС большое - тогда годы корректно

зы ссылки на доку это хорошо - но иногда не сложно написать ответ прямым текстом
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39413228
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MДаёт выражения порицания со стороны общественности. Не следует использовать недокументированные классы, каковыми являются все с пакетом sun. ... и никогда не бывает необходимости в этом. Если вам кажется, что нужно, значит вы не изучили тему.
Так что совет использовать src.zip не полезный.

Ты снова сел влужу пытаясь самоутвердится оспаривая чужой ответ? Автор темы посмотрел toString() а ты уже называешь это использованием класса из пакета sun? toString() нельзя использовать, там, упаси бог, может оказаться имя приватного класса?
В src.zip, ксати, нет классов из этого пакета.
И какое вообще отношение чтение документации и кода через IDE из src.zip имеет к использованию классов из не публичных пакетов?
...
Рейтинг: 0 / 0
преобразование строки в дату в форамте YYYY-MM-DD
    #39413267
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот еще и ссылка не та - на 6-ю
нет там Y

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
вот здесь
y Year Year 1996; 96
Y Week year Year 2009; 09


зы да в след. раз буду внимаетльным к кейсу букв
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / преобразование строки в дату в форамте YYYY-MM-DD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]