Я использую следующую функцию, которая возвращает отформатированную строку даты:Как отформатировать дату Java для ISO m8583?
private static String formatDate(String format) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(format);
String strDate = sdf.format(date);
return strDate;
}
Эта функция возвращает, например, если я называю его, используя следующий формат:
System.out.println(formatDate("MMYYHHMMSS"));
он печатает: 04130904803
Когда я использую вышеуказанную дату для создания сообщения ISO, например.
// Create ISO Message
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.setMTI("0200");
isoMsg.set(2, "100002");
isoMsg.set(3, "2");
isoMsg.set(7, "04130904803");
isoMsg.set(11, "123456");
isoMsg.set(44, "A5DFGR");
isoMsg.set(105, "ABCDEFGHIJ 1234567890");
// Get and print the output result
byte[] data = isoMsg.pack();
unpackISO(new String(data));
Я получаю следующее сообщение об ошибке: => Ошибка: ошибка поля упаковки 7 Но когда я удалить предшествующую нуль даты в поле 7, я отлично работает. Какой формат даты я должен использовать в java для форматирования даты? Помогите!
Спасибо тарелочкам – user2194528
Обратите внимание на формат ISO 8583. Поле 7 должно быть «MMddHHmmss» месяц день час минута секунда « –
@JohnOxley: Спасибо - исправит это и отметит ваш комментарий. –