我想更改rsyslog上的默认时间戳格式。目前,我正在RHEL7.2上运行。Syslog版本7.4.7。现在,默认格式如下:
Mar 23 09:35:30 localhost DEB [9125:<console>.<module>:2] debug info
Run Code Online (Sandbox Code Playgroud)
在rsyslog.conf中,我定义了以下模板:
$template Mytemplate,"%timegenerated% %HOSTNAME% %syslogseverity-text:0:3:uppercase% %msg%\n"
Run Code Online (Sandbox Code Playgroud)
如何将格式更改为此YYYY-MM-dd H:i:s?
我只能使用 C++ 标准库 (C++14) 将时间戳转换为给定格式的日期时间。我刚接触 C++,我知道 C++ 并没有通过像 Java 这样的库为我们提供很多支持。在中欧时区 (CET)的给定日期和时间2011-03-10 11:23:56,将产生以下标准格式输出:“ 2011-03-10T11:23:56.123+0100 ” .
std::string format = "yyyy-MM-dd'T'HH:mm:ss'.'SSSZ"; //default format
auto duration = std::chrono::system_clock::now().time_since_epoch();
auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
Run Code Online (Sandbox Code Playgroud)
我的格式字符串的语法是
G : Era
yy,yyyy : year (two digits/four digits)
M,MM : month in number (without zero/ with zero) - (e.g.,1/01)
MMM,MMMM : month in text (shortname/fullname)- (e.g.,jan/january)
d,dd : day in month (without zero/with zero)- (e.g.,1/01)
D : day in year
F : day of week …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个新记录,其中一个字段是DataTime字段.
我总是得到"2011年9月1日19:25:20的日期 - 时间格式无效,或者值超出支持的范围." 错误.
我尝试了多种格式选项.使用Date.parse,Date.parseExact,...这是我的最后一次尝试:
//date input format = 2011-02-15 11:05:22
var year = register_date.substring(0, 4);
var month = register_date.substring(5, 7);
var day = register_date.substring(8, 10);
var hours = register_date.substring(11, 13);
var minutes = register_date.substring(14, 16);
var seconds = register_date.substring(17, 19);
var datetime = Date(Date.UTC(year, month, day, hours, minutes,seconds));
//var datetime = Date.parseExact(register_date, "yyyy-mm-dd HH:mm:ss");
regFields[4] = new CRMField("ave_subscriptiondate", datetime);
Run Code Online (Sandbox Code Playgroud) javascript datetime dynamics-crm formatdatetime dynamics-crm-2011
继续这个问题: 如何将Twitter时间戳转换为DateTime?
将twitter日期时间戳转换为TDateTime的代码是什么?
edit:StrDateTime(const string; TFormatSettings);
可以处理其中的一些,现在只是想弄清楚如何引入新的格式.
我有一个数据表(由数据库使用dataadaptor返回),其中一个DateOfBirth字段00:00:00在出生日期结束时.我想删除那些00:00:00,所以我写了一个功能,但它没有做的工作,我不知道为什么.任何人都可以建议我如何删除00:00:00从DateOfBirth.我没有数据库或存储过程的权限.
Dim DOB As New DateTime
Dim newDob As String = ""
For Each x In dt.Rows
If x("DateOfBirth") <> String.Empty AndAlso IsDate(x("DateOfBirth")) Then
DOB = CDate(x("DateOfBirth"))
newDob = DOB.ToString("dd/MM/yyyy")
x("DateOfBirth") = newDob
End If
Next
Run Code Online (Sandbox Code Playgroud) 我的字符串包含ISO 8601格式的日期时间值(例如:) 2013-05-21T15:00:00+0200和时区(例如:)Europe/Rome.
表示此日期格式的最佳Postgres数据类型是什么?
我的数据中有一个日期列,其中显示“付款日期”,该列具有多种字符串格式,例如ddmmyyyy、ddmyyyy和yyyymmdd。有谁知道如何将所有这些转换为统一的日期格式,就像dd-mm-yyyyBigQuery 中一样?
如果之前有人询问过,请指出正确的方向.我似乎找不到任何有用的谷歌技巧.
我有以下代码,它读取这样的字符串; 停电StartDate:05/10/11 23:59 EST
并提取日期信息,即05/10/11 23:59
sStartTime = Mid(objItem.Body, 18, 15) ' Extract the start time
Debug.Print "sStartTime after reading: " & sStartTime
sStartTime = Format(sStartTime, "dd/mm/yy hh:mm") ' Format date correctly
Debug.Print "sStartTime after formatting: " & sStartTime
Run Code Online (Sandbox Code Playgroud)
这是我通常得到的输出:
sStartTime after reading: 05/10/11 23:59
sStartTime after formatting: 10/05/11 23:59
Run Code Online (Sandbox Code Playgroud)
但有时它甚至交换日期和年份:
sStartTime after reading: 14/07/11 23:59
sStartTime after formatting: 11/07/14 23:59
Run Code Online (Sandbox Code Playgroud)
然后CDate完全填充东西,将日期转换为1931年的事情...任何帮助将日期字符串转换为日期对象将非常感激.
===============
编辑:应该在最初的帖子中提到这一点.读取字符串背后的想法是转换为Date对象,以便我可以创建日历约会.目前我用这个;
dStartTime = CDate(sStartTime)
Run Code Online (Sandbox Code Playgroud)
我认为是问题线,sStartTime ="29/09/11 23:00"(dd/mm/yy hh:mm)和dStartTime ="11/9/2029 11:00:00 PM"
所以很明显会出现一些转换问题,但是我不知道为了将29/09/11 23:00变成等效的日期对象,我想用什么格式来提供CDate函数.
我正在使用 Delphi BDS2006 如何将日期 (01/10/2011) 格式化为类似
1st Oct 2011
我尝试使用
ShowMessage(FormatDateTime('ddd mmm yyyy', now));
我得到的消息是 Sat Oct 2011
ddd给我Sat而不是1st
我想以类似的方式添加st,nd,rd,th到日期
是否有内置程序或函数来执行此操作,或者我必须手动检查日期并为其分配后缀
我目前正在使用这个
case dayof(now)mod 10 of
1 : days:=inttostr(dayof(dob))+'st';
2 : days:=inttostr(dayof(dob))+'nd';
3 : days:=inttostr(dayof(dob))+'rd';
else days:=inttostr(dayof(dob))+'th';
end;
Run Code Online (Sandbox Code Playgroud) 我有这个日期“08/08/2019”,我希望它看起来像这样:“2019 年 8 月 8 日”,我尝试使用when但想知道是否有更简单的方法来做到这一点?我知道这是一个小问题,但我试图通过互联网找到答案,但我找不到。
我正忙着用 Delphi 11.3 编写一个与时间兼容的程序。具体来说,是开始时间和结束时间,并计算两者之间花费的时间,以及其中一个是否大于另一个。
MinutesBetween()尽管使用了or ,事情还是变得一团糟MinuteSpan()。我的开始时间可能是08:00我的结束时间09:30。如果我使用if start < end,我会得到 False 但它是 True 。计算所花费的时间相当于100多年。像这样的奇怪的事情。
作为测试,我编写了一个小程序,代码如下:
mmo1.Lines.Add(FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr1.Time)+' '
+FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr2.Time)+' '
+IntToStr(MinutesBetween(tmpckr1.Time,tmpckr2.Time))+' '
+FloatToStr(MinuteSpan(tmpckr1.Time,tmpckr2.Time)));
Run Code Online (Sandbox Code Playgroud)
这是在一个TTimer. 输出如预期:
mmo1.Lines.Add(FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr1.Time)+' '
+FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr2.Time)+' '
+IntToStr(MinutesBetween(tmpckr1.Time,tmpckr2.Time))+' '
+FloatToStr(MinuteSpan(tmpckr1.Time,tmpckr2.Time)));
Run Code Online (Sandbox Code Playgroud)
我将单击tmpckr1,然后在底部打勾。请注意,我当时没有更改任何内容,这就是结果。
2023/09/18 20:46:29.571 2023/09/18 20:46:29.571 0 0
Run Code Online (Sandbox Code Playgroud)
我重复一遍,这次是tmpckr2:
1899/12/30 20:46:29.571 2023/09/18 20:46:29.571 65069280 65069280
Run Code Online (Sandbox Code Playgroud)
有没有办法防止这种情况发生,或者我必须使用EncodeDate()、 、做一些魔法EncodeTime(),ReplaceDate()以便s的值ReplaceTime()真正匹配,还是我让事情变得过于复杂?TTimeTTimePicker
如果我只是处理TTime,为什么日期是一个因素?TTimePicker为什么一旦有活动,日期就会改变 …
formatdatetime ×11
date ×4
datetime ×3
delphi ×3
timestamp ×2
asp.net ×1
c++ ×1
c++-chrono ×1
c++14 ×1
casting ×1
delphi-2009 ×1
dynamics-crm ×1
iso8601 ×1
javascript ×1
kotlin ×1
outlook ×1
outlook-vba ×1
postgresql ×1
rsyslog ×1
tdatetime ×1
timezone ×1
twitter ×1
vb.net ×1
vba ×1