我试图将当前日期转换为指定格式。
DateTime date = DateTime.ParseExact(DateTime.Now.ToString(), "yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
我收到以下例外。
字符串未被识别为有效的DateTime。
我当地的TimeZone是(UTC + 10:00)墨尔本。
我在这里做错了什么?
答案 0 :(得分:4)
您的代码(即使有效)也无济于事。它只是序列化和反序列化日期。我相信你正在寻找这个:
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
它不起作用,因为DateTime.Now.ToString()
给出一个字符串(我碰巧在同一时区,并且可能与你有相同的文化):
14/01/2016 3:54:01 PM
格式如下:
dd/MM/yyyy h:mm:ss tt
与您使用的格式不符:yyyy-MM-dd HH:mm:ss.fff
答案 1 :(得分:3)
试试这个:
DateTime now = DateTime.Now;
CultureInfo culture = new CultureInfo("en-AU"); //Melbourne
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(now.ToString("yyyy-MM-ddTHH:mm:ss.fff"));
修改强>
在格式中实现日期的更好方法是
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
option_list = question_list_array.get(position).option_list;
number_of_options = option_list.size();
v_single=convertView;
if (v_single == null)
{
v_single = inflater.inflate(R.layout.single_choice_layout, null);
sh = new SingleHolder();
sh.single_question_name = (TextView) v_single.findViewById(R.id.single_question_name);
sh.single_radiogroup = (RadioGroup) v_single.findViewById(R.id.single_radiogroup);
v_single.setTag(sh);
}
else
{
sh = (SingleHolder) v_single.getTag();
}
sh.single_radiogroup.clearCheck();
sh.single_radiogroup.removeAllViews();
sh.single_question_name.setText(question_list_array.get(position).getQuestion_name());
for (int j = 0; j < number_of_options; j++)
{
RadioButton rb = new RadioButton(context);
rb.setId(Integer.parseInt(option_list.get(j).getOption_id()));
rb.setText(option_list.get(j).getOption_name());
sh.single_radiogroup.addView(rb);
}
sh.single_radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int n = 0; n < group.getChildCount(); n++)
{
RadioButton rb = (RadioButton) group.getChildAt(n);
if (Integer.parseInt(option_list.get(n).getOption_id())== checkedId)
{
k++;
String result = rb.getText().toString();
sr=new SingleResult();
sr.setAns(result);
sr.setQuestion_id(question_list_array.get(k).getQuestion_id());
single_result.add(sr);
Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
return;
}
}
}
});
v_final=v_single;
return v_final;
}
private class SingleHolder
{
TextView single_question_name;
RadioGroup single_radiogroup;
}
<强> IDEONE DEMO 强>