我一直试图在过去的4个小时内解决这个问题,似乎无法弄清楚如何解决这个问题。用户进入应用程序并在日历上选择日期。所选日期只是NSDate
。然后,用户可以选择由hours
,minutes
和seconds
组成的时间,然后他们可以选择AM
或PM
。
因此,我们假设用户选择的时间为6:57 PM
。我需要修改在日历上选择日期时创建的原始NSDate
,并更改其时间数据以匹配用户刚刚设置的6:57 PM
时间。
我一直在使用dateBySettingHour
类的NSCalendar
函数,效果很好。唯一的问题是我无法修改AM/PM
值。我所能做的只是将时间,分钟和秒钟传递给它。这是代码:
calendar.dateBySettingHour(hours, minute: minutes, second: seconds, ofDate: selectedDate, options: NSCalendarOptions())
我一直在玩NSDateFormatter
,NSDateComponents
和NSCalendar
并且已经在这里进行了示例,但我似乎无法绕过这个并且搞清楚。
以ISO 8601
日期格式创建最终日期的最简单,最有效的方法是将正确的月,日和年信息作为原始NSDate
,但现在还有正确的时间信息,包括用户选择的AM/PM
设置?
我知道尝试使用dateBySettingHour
是不可能的,但我现在可以尝试任何事情。
答案 0 :(得分:4)
Xcode 8.3.2•Swift 3.1
/**
* Put image into sheet at position [row,col]
* @param sheet
* @param col
* @param row
* @param imgData
* @throws Exception
*/
private static void putImage(Workbook wb, Sheet sheet, int col, int row, byte[] imgData) throws Exception {
try {
Drawing drawing = sheet.createDrawingPatriarch();
int pictureIdx = wb.addPicture(imgData, Workbook.PICTURE_TYPE_PICT);
CreationHelper helper = wb.getCreationHelper();
ClientAnchor anchor4 = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor4.setCol1(col);
anchor4.setRow1(row);
anchor4.setCol2(col+1);
anchor4.setRow2(row+1);
drawing.createPicture(anchor4, pictureIdx);
} catch (Exception ex) {
log.severe("Exception : " + Utils.exceptionToString(ex));
}
}
答案 1 :(得分:1)
你可以通过"小时+ 12" PM?