问题描述
在iPadOS 13上,当用户将“ 24小时制”设置为FALSE时,以下代码将产生以下输出:
代码:
final String MovieMuamala = movieMuamala.getText().toString().trim();
Muamala.addValueEventListener(new ValueEventListener() {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String pass = snapshot.child("muamala").getValue().toString();
if(MovieMuamala.equals(pass)) {
Toast.makeText(MovieDetails.this,"Pass Matched",Toast.LENGTH_LONG).show();
successNotification();
TextView subText = findViewById(R.id.sub_txt);
subText.setText(MovieMuamala);
} else if (!MovieMuamala.equals(pass)){
Toast.makeText(MovieDetails.this,"Your Muamala Did not Match In Our Database",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
输出:
+ (Nsstring *)dateStringFromDate:(NSDate *)date {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
return [dateFormatter stringFromDate:date];
}
2020-10-19T11:55:29Z
注意:在两个操作系统上,“ 24小时制”切换都设置为FALSE。出于某种原因,iPadOS 14似乎遵循NSDateFormatter中的AM / PM设置,但iPadOS 13则不这样做。
我知道将语言环境设置为此将完全删除AM / PM:
2020-10-19T12:38:06 p.m.Z
但是,我们试图理解为什么在iPad设置完全相同的情况下仅在iPadOS 14而不是13上出现问题。
解决方法
基金会的日期和时间API建立在Apple平台随附的ICU版本的基础上。在OS版本之间,Foundation和ICU代码都将接收更新,这些更新可以修复旧错误,并偶尔引入新错误。在任何API层上,这里的变化都已经体现出来(以及在该层是否被视为错误),您将看到代码已更改的结果。
这里的行为看起来不正确,但是幸运的是,void MainWindow::on_btnOpenFile_clicked()
{
auto path = QFileDialog::getOpenFileName(this,"Browse for a array object file...");
QFile file(path); // works fine
if(file.exists(path) && file.open(QIODevice::ReadOnly)) {
QTextStream stream(&file);
QString xLine;
QString yLine;
QVector<QPointF> mPoints;
while(!stream.atEnd()) {
xLine = stream.readLine();
if(xLine.contains("x",Qt::CaseInsensitive)) { // Line has x in it
yLine = stream.readLine(); // READ NEXT LINE!!!!
} else { // Line is either Y or not a X line so we skip to next itteration
continue;
}
// Debug the lines
qDebug() << "X =" << xLine;
qDebug() << "Y =" << yLine;
// Parse and add the points to the array
auto xConvResult = false;
auto yConvResult = false;
// To discard trailing ',' of the X line
auto xValue = xLine.split(":")[1].split(",")[0].toDouble(&xConvResult);
auto yValue = yLine.split(":")[1].toDouble(&yConvResult);
if(xConvResult && yConvResult) {
mPoints.push_back({xValue,yValue});
}
}
file.close();
}
}
的语言环境(无论如何应该设置)可以解决问题。