powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертирование String в Date...
17 сообщений из 17, страница 1 из 1
Конвертирование String в Date...
    #35637799
AlbertM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Глупый вопрос.

Надо конвертировать String "Fri, 03 Oct 2008 05:52:30 GMT" в Date.

Делаю так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 import  java.util.Date;
 import  java.util.Calendar;
 import  java.text.SimpleDateFormat;

 public   class  test {

	 public   static   void  main(String[] args) {
		 try  {

                      String sd = "Fri, 03 Oct 2008 05:52:30 GMT";
                      SimpleDateFormat format =  new  SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
                      Date date = format.parse(sd);
                      System.out.println("Date : " + date);
			
		}  catch  (Exception e) {
			e.printStackTrace();
		}
	}
}

Не работает. Выдает сообщение:

Код: plaintext
1.
java.text.ParseException: Unparseable date: "Fri, 03 Oct 2008 05:52:30 GMT"

Тогда пробую так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 import  java.util.Date;
 import  java.util.Calendar;
 import  java.text.SimpleDateFormat;

 public   class  test {

	 public   static   void  main(String[] args) {
		 try  {

                      String sd = "03.10.2008";
                      SimpleDateFormat format =  new  SimpleDateFormat("dd.MM.yyyy");
                      Date date = format.parse(sd);
                      System.out.println("Date : " + date);
			
		}  catch  (Exception e) {
			e.printStackTrace();
		}
	}
}

Работает!

Пробую так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 import  java.util.Date;
 import  java.util.Calendar;
 import  java.text.SimpleDateFormat;

 public   class  test {

	 public   static   void  main(String[] args) {
		 try  {

                      String sd = "03 Oct 2008";
                      SimpleDateFormat format =  new  SimpleDateFormat("dd MMM yyyy");
                      Date date = format.parse(sd);
                      System.out.println("Date : " + date);
			
		}  catch  (Exception e) {
			e.printStackTrace();
		}
	}
}


Опять не работает. В чем тут проблема и как лучше сделать это конвертирование?
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35637835
Leshij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Date.parse, если не страшно, что он deprecated.
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35637866
AlbertM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е.? Поясните, плс. И почему не работает моя конструкция, хотя должна бы?
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35637887
AlbertM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35638384
skipper13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlbertM,

всё дело в локали
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 import  java.text.SimpleDateFormat;
 import  java.util.Date;
 import  java.util.Locale;

 public   class  SimpleDateFormatTest {

     public   static   void  main(String args[])  throws  Exception {
	String stringDate = "Thu, 6 Nov 2008 14:12:13 GMT";
	String stringDateFormat = "EEE, dd MMM yyyy HH:mm:ss z";
	SimpleDateFormat format =  new  SimpleDateFormat(stringDateFormat, Locale.US);
	Date date = format.parse(stringDate);

	System.out.println(date);
    }

}

консоль[tmp]$ javac SimpleDateFormatTest.java
[tmp]$ java -cp . SimpleDateFormatTest
Thu Nov 06 16:12:13 EET 2008

Имена дней недели и месяца на английском, а у вас установлена по всей видимости русская локаль. Вот и "не выходит каменный цветок" ;)
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35638444
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так всегда работает:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date ddd = null;
String sss = null;
try {
ddd = sdf.parse("2008-10-3");
sss = ddd.toString();
this.jLabel1.setText(sss);
}catch(Exception e) {

}
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #35638461
skipper13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует, дай бог памяти, три устоявшихся варианта представления даты и времени в виде строки: UNIX, internet и ISO.

Потому уметь работать с ними будет совсем не лишним знанием. Я так думаю (с) ;)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Конвертирование String в Date...
    #37452962
Коляныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поднимаю старую тему. Добрый день, есть задача передавать время в формате: "2011-09-23T13:26:02.000+06:00" (один из ISO-шных 8601) и парсить ответы в таком же виде. Подскажите плиз как правильно сделать и в ту, и в другую сторону? Вручную парсить совсем не хочется. Вообще было бы здорово, если бы один и тот же метод сам распознавал все возможные ISO-шные фоматы вроде нетовского DateTimeOffset.Parse("....."), но если это слишком геморройно, то хотя бы просто приведённый в примере
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #37453000
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joda-time
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #37454396
Коляныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Thanx, похоже то, что надо. Особенно учитывая, что других способов не обнаружено
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Конвертирование String в Date...
    #38516899
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста почему результат не в формате Short dd-MM-yyyy

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
java.util.Date date = format.parse(abc);
System.out.println(date);

Thu Jan 02 00:00:00 UZT 2014
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516906
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516961
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда у меня такой вопрос, вот две простые функции которые я написал для того чтобы конвертировать в и из timestamp unix:

import java.sql.*;
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

import TCLoadpkg.DBConnection;

import java.util.*;

public class TimeStampConverter {
public static void main(String[] args) throws ParseException {
System.out.println(ToTimeStamp("02-01-2014"));
System.out.println(fromTimeStamp(1328363392));
}
public static String fromTimeStamp (int timestamp) {
String abc = "";
try {
Timestamp tm = new Timestamp(timestamp);
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
java.util.Date date = new Date(tm.getTime());
abc = date.toString();
} catch (Exception e) {
System.out.println(e);
}
return abc;
}


public static int ToTimeStamp (String abc) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
java.util.Date date = format.parse(abc);
Timestamp tm = new Timestamp (date.getTime());
return (int) tm.getTime();
}

}

Вот что получается:

System.out.println(ToTimeStamp("02-01-2014")); - вернула мне: 1328363392
Когда вставляю 1328363392 в функцию которая переводит в дату то на выходе получаю:
System.out.println(fromTimeStamp(1328363392)); - вернула мне: 1970-01-16

Что не так?
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516973
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiQuid,

return (int) tm.getTime(); - вот именно поэтому
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516988
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, поставил я тип Long, выдала мне функция результат 1388602800000

Код: 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.
25.
26.
27.
public class TimeStampConverter {
	public static void main(String[] args) throws ParseException {
		System.out.println(ToTimeStamp("02-01-2014"));
		System.out.println(fromTimeStamp(1388602800000));
	}
	public static String fromTimeStamp (long timestamp) {
		String abc = "";
		try {
			Timestamp tm = new Timestamp(timestamp);
			SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
			java.util.Date date = new Date(tm.getTime());
			abc = date.toString();
		} catch (Exception e) {
			System.out.println(e);
		}
		return abc;		
	}
	

	public static long ToTimeStamp (String abc) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
        java.util.Date date = format.parse(abc);
        Timestamp tm = new Timestamp (date.getTime());
        return tm.getTime();
	}

}


Но когда я пытаюсь результат обратно в дату превратить то ругается на вот это:
System.out.println(fromTimeStamp(1388602800000));
При чем вызывает ошибку:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The literal 1388602800000 of type int is out of range

Что делать?
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516996
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiQuid,

учить примитивные типы в java

Код: java
1.
System.out.println(fromTimeStamp(1388602800000L));
...
Рейтинг: 0 / 0
Конвертирование String в Date...
    #38516998
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертирование String в Date...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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