Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертирование String в Date... / 17 сообщений из 17, страница 1 из 1
06.11.2008, 15:08:03
    #35637799
AlbertM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Привет.

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

Надо конвертировать 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
06.11.2008, 15:17:41
    #35637835
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Date.parse, если не страшно, что он deprecated.
...
Рейтинг: 0 / 0
06.11.2008, 15:24:17
    #35637866
AlbertM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Т.е.? Поясните, плс. И почему не работает моя конструкция, хотя должна бы?
...
Рейтинг: 0 / 0
06.11.2008, 15:28:02
    #35637887
AlbertM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
...
Рейтинг: 0 / 0
06.11.2008, 17:43:09
    #35638384
skipper13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
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
06.11.2008, 18:02:40
    #35638444
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Вот так всегда работает:

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
06.11.2008, 18:09:07
    #35638461
skipper13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Существует, дай бог памяти, три устоявшихся варианта представления даты и времени в виде строки: UNIX, internet и ISO.

Потому уметь работать с ними будет совсем не лишним знанием. Я так думаю (с) ;)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
23.09.2011, 11:41:10
    #37452962
Коляныч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Поднимаю старую тему. Добрый день, есть задача передавать время в формате: "2011-09-23T13:26:02.000+06:00" (один из ISO-шных 8601) и парсить ответы в таком же виде. Подскажите плиз как правильно сделать и в ту, и в другую сторону? Вручную парсить совсем не хочется. Вообще было бы здорово, если бы один и тот же метод сам распознавал все возможные ISO-шные фоматы вроде нетовского DateTimeOffset.Parse("....."), но если это слишком геморройно, то хотя бы просто приведённый в примере
...
Рейтинг: 0 / 0
23.09.2011, 11:54:21
    #37453000
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Joda-time
...
Рейтинг: 0 / 0
23.09.2011, 20:59:59
    #37454396
Коляныч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Blazkowicz,
Thanx, похоже то, что надо. Особенно учитывая, что других способов не обнаружено
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.01.2014, 06:17:35
    #38516899
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Подскажите пожалуйста почему результат не в формате 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
02.01.2014, 09:19:41
    #38516906
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
...
Рейтинг: 0 / 0
02.01.2014, 15:08:19
    #38516961
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Тогда у меня такой вопрос, вот две простые функции которые я написал для того чтобы конвертировать в и из 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
02.01.2014, 15:38:22
    #38516973
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
LiQuid,

return (int) tm.getTime(); - вот именно поэтому
...
Рейтинг: 0 / 0
02.01.2014, 16:21:49
    #38516988
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
Ок, поставил я тип 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
02.01.2014, 16:34:28
    #38516996
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование String в Date...
LiQuid,

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

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


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