String 如何获得今天并使用vala/genie将其转换为字符串?
我有这个代码,但它失败了。为什么?String 如何获得今天并使用vala/genie将其转换为字符串?,string,date,glib,vala,genie,String,Date,Glib,Vala,Genie,我有这个代码,但它失败了。为什么? // tomar la fecha fecha = GLib.Date(); print "cogiendo" var s = new StringBuilder("Fecha:"); dia:DateDay= fecha.get_day(); s.append_printf ("%u",dia); print s.str; fecha_str=s.str; 能说会道的回报: g_date_get_day:断言“g_date_valid d”失败来自文档:
// tomar la fecha
fecha = GLib.Date();
print "cogiendo"
var s = new StringBuilder("Fecha:");
dia:DateDay= fecha.get_day();
s.append_printf ("%u",dia);
print s.str;
fecha_str=s.str;
能说会道的回报:
g_date_get_day:断言“g_date_valid d”失败来自文档: 如果日期结构是从g_Date_new获得的,则可以安全地进行变异,但无效,因此不适合日历计算
也许您想要设置时间,或者设置时间值。如果您想要今天的日期,请fecha.set\u time\u ttime\t 此代码运行良好!!在gnome的vala样本中搜索:
var now = new DateTime.now_local ();
fecha_str = now.get_day_of_month ().to_string()+"/"+now.get_month ().to_string()+"/"+now.get_year ().to_string()
我建议为此目的使用 如果希望当前日期作为区域设置相关或独立的格式,则未写入 依赖于区域设置,使用: var dt=新的DateTime.now\u local; stdout.put dt.format%x; 独立于区域设置,使用注意,这还包括时间: var dt=新的DateTime.now\u local; 标准存托凭证@$dt; 以自定义格式使用: var dt=新的DateTime.now\u local; stdout.put dt.format%d/%m/%Y;//29/09/2014 我从您自己的答案中选择了自定义格式,但我不会使用它,因为它会让人困惑,因为通常带有/分隔日期的格式为%m/%d/%Y或%m/%d/%Y
我希望使用用户期望的语言环境默认格式,或者使用字符串或不使用时间的格式%F。对不起,我想使用当前日期,即今天的日期。使用glib 2.58,我现在可以使用dt assert!=如果我通过foreach循环,则返回空消息。为什么呢?我是否应该添加断言dt!=在标准输出之前为空?