में कनवर्ट करें मेरे पास निम्नलिखित Java.lang.String
मान हैं जो TIMESTAMPTZ
का मान दर्शाते हैं। मुझे इन Java.lang.String
से oracle.sql.TIMESTAMPTZ
को परिवर्तित करने की आवश्यकता है।'Java.lang.String` को' oracle.sql.TIMESTAMPTZ '
"2016-04-19 17:34:43.781 Asia/Calcutta",
"2016-04-30 20:05:02.002 8:00",
"2003-11-11 00:22:15.0 -7:00",
"2003-01-01 02:00:00.0 -7:00",
"2007-06-08 15:01:12.288 Asia/Bahrain",
"2016-03-08 17:17:35.301 Asia/Calcutta",
"1994-11-24 11:57:17.303"
मैंने इसे कई तरीकों से आजमाया।
नमूना 1:
java.text.ParseException: Unparseable date: "2016-04-19 17:34:43.781 Asia/Calcutta"
at java.text.DateFormat.parse(DateFormat.java:357)
नमूना 2:
SimpleDateFormat
String[] timeZoneValues = new String[]{"2016-04-19 17:34:43.781 Asia/Calcutta", "2016-04-30 20:05:02.002 8:00", "2003-11-11 00:22:15.0 -7:00", "2003-01-01 02:00:00.0 -7:00", "2007-06-08 15:01:12.288 Asia/Bahrain", "2016-03-08 17:17:35.301 Asia/Calcutta", "1994-11-24 11:57:17.303"};
for(String timeZoneValue: timeZoneValues){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS XXX");
try {
simpleDateFormat.parse(timeZoneValue);
} catch (ParseException e) {
e.printStackTrace();
}
}
का उपयोग कर वह एक अपवाद फेंका द्वारा यह कोशिश की
इन String
मूल्यों सीधे परिवर्तित करके यह कोशिश कीमेंया oracle.sql.TIMESTAMPTZ
String parse = "2016-04-19 17:34:43.781 8:00";
try {
Timestamp timestamp = Timestamp.valueOf("2016-04-19 17:34:43.781 8:00");
}catch (Exception ex){
ex.printStackTrace();
}
अपवाद:
java.lang.NumberFormatException: For input string: "781 8:000"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at java.sql.Timestamp.valueOf(Timestamp.java:253)
नमूना 3:
String parse = "2016-04-19 17:34:43.781 Asia/Calcutta";
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis();
DateTime dateTime = dateTimeFormatter.parseDateTime(parse);
Timestamp timeStamp = new Timestamp(dateTime.getMillis());
अपवाद:
Invalid format: "2016-04-19 17:34:43.781 Asia/Calcutta" is malformed at " 17:34:43.781 Asia/Calcutta"
नमूना 4:
try {
TIMESTAMPTZ timestamptz = new TIMESTAMPTZ(connection, (String) colValue);
}catch (Exception ex){
ex.printStackTrace();
}
अपवाद:
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
at java.sql.Timestamp.valueOf(Timestamp.java:249)
at oracle.sql.TIMESTAMPTZ.toBytes(TIMESTAMPTZ.java:1919)
at oracle.sql.TIMESTAMPTZ.<init>(TIMESTAMPTZ.java:253)
मैं Apache Metamodel
का उपयोग कर Oracle
डेटाबेस में TIMESTAMPTZ
मान सम्मिलित करने की कोशिश कर रहा हूँ और मैं Java 1.7
अपने सिस्टम पर स्थापित किया है।
आपके पास इनपुट में तिथियों का एक सतत प्रारूप नहीं है। रूपांतरण को संभालना बहुत कठिन होगा। – Mubin
@Mubin क्या आप कृपया सभी संभावित समाधान सुझा सकते हैं यहां तक कि स्ट्रिंग्स लगातार नहीं हैं? –
मुझे डर है कि आपको 'डेटफॉर्मैट' – user902383