Get the corresponding value based on created time - awk

cat input.txt | awk '/ID/;/TimeReceived/ {print $2,$3,$4}'
Output:
ID: f7a570c2
03/26/14 18:22:50 GMT
ID: f7f810a2
08/13/14 23:50:59 GMT
ID: f8e76dd2
04/25/14 06:13:10 GMT
ID: f92e90c2
03/19/14 12:51:23 GMT
ID: f98ac152
08/01/14 00:10:43 GMT
ID: faef4812
04/21/14 16:29:15 GMT
ID: fb6b38d4
05/06/14 17:32:20 GMT
ID: fbfb0d92
08/26/14 04:24:07 GMT
ID: fc15d932
05/27/14 18:44:48 GMT
ID: fc235e12
06/03/14 12:39:17 GMT
ID: fc988622
06/23/14 16:02:29 GMT
ID: fcb1e6c2
03/25/14 17:37:48 GMT
ID: fd025382
05/28/14 16:50:29 GMT
ID: fd061b12
04/21/14 18:41:41 GMT
ID: fd7efde2
08/15/14 18:01:27 GMT
ID: fdd30022
05/28/14 15:51:29 GMT
ID: fdf73792
03/31/14 20:13:00 GMT
ID: fe9d3a22
04/15/14 16:15:37 GMT
ID: fea03cf2
08/04/14 02:06:00 GMT
ID: ff7e3de2
07/07/14 10:51:41 GMT
The above output isn't sorted based on time. I want to extract all the "ID" which has the created time should be olderthan a month . can some one help me to code it ?

With GNU awk and GNU date the following should work:
awk -vcutoff="$(date -d"-1 month" +%s)" '
/^ID:/ {
ID=$2
next
}
/^TimeReceived:/ {
split($2, d, /\//)
gsub(/:/, " ", $3)
tm=mktime("20"d[3]" "d[1]" "d[2]" "$3)
if (tm<cutoff) {
print ID
}
}' input
As per discussion in the comments some examples of how date does its calculations:
$ date -d "03/31/2014 - 1 month"
Mon Mar 3 00:00:00 EST 2014
$ date -d "06/26/2014 - 1 month"
Mon May 26 00:00:00 EDT 2014
The info page for date has a little more information about these calculations in section 28.6 Relative items in date strings.

Related

Custom date for Quarto YAML header pdf document

The custom date works in RMarkdown-pdf but I noticed Quarto doesn't.
How can I use custom date in Quarto YAML?
---
title: "Some pdf document"
author: "me"
date: "Spring 2022" <- I would like to use this
format: pdf
----
---
title: "Some pdf document"
author: "me"
date: "Last update : `r Sys.Date()`" <- Or, like this
format: pdf
----
Current Quarto-pdf generates %m/%d/%Y format date only.
You can provide last-modified keyword (which refers to the last modified date and time of the file containing the date) to date and use date-format to modify the date. Also you can put additional words in between square brackets which will be then escaped and kept as is.
---
title: "Some pdf document"
author: "me"
date: last-modified
date-format: "[Last Updated on] MMMM, YYYY"
format: pdf
---
Now, since there is no format-string for season name, it is possible make one using Pandoc Lua filter.
---
title: "Some pdf document"
author: "None"
date: last-modified
date-format: "[Last Updated on] %MMM%, YYYY"
format: pdf
filters:
- custom-date.lua
---
Note Here we have used %MMM%, which will be replaced by season name.
custom-date.lua
local function replace_mon_with_season(date)
local season_table = {
Jan = "Winter", Feb = "Winter", Mar = "Spring",
Apr = "Spring", May = "Spring", Jun = "Summer",
Jul = "Summer", Aug = "Summer", Sep = "Autumn",
Oct = "Autumn", Nov = "Autumn", Dec = "Spring"
}
local date = pandoc.utils.stringify(date)
local mon = date:match("%%(%a+)%%")
local season = season_table[mon]
return date:gsub("%%" .. mon .. "%%", season)
end
function Meta(m)
m.date = replace_mon_with_season(m.date)
return m
end

Cannot Properly Transform Unix Timestamp to DateTime in Mule 4

So I am trying to convert a Unix Timestamp into a Human Readable date format (ex: January 20, 2021).
This is the response that I get from an API which gives the Unix timestamp
"time":1388620296020
And then I try to transform it using the Transform Message, my code looks like this
date: (object.properties.time as DateTime) as String {
format: "MMMM dd, yyyy"
},
But the output I get after I deploy it, goes like this
"date": "August 17, +45973"
I am not sure why is it happening.
Epoch can be directly converted to DateTime in Dataweave
Try This
date: (object.properties.time as DateTime {unit : "milliseconds"})
output:
"date": "2014-01-01T23:51:36.02Z"
You can check the output by entering in the below link as well
https://www.unixtimestamp.com/
https://www.epochconverter.com/
Another way to get the exact format,that you mentioned in the quesion (ex: January 20, 2021) it is achievable by below script
%dw 2.0
output application/json
---
date: payload.message as DateTime {unit : "milliseconds"}
as String {format: 'MMMM dd,yyyy'}
this script will give you output as:
{
"date": "January 01,2014"
}
Convert Unix Timestamp to Date Time in Mule 4
Input :
{
"time":1388620296020
}
---------output----------
{
"date": "01-Jan-2014 11:51:36"
}
How to write the script, You understand correct format Date Time.
%dw 2.0
output application/json
{
date: payload.time as DateTime {unit: "milliseconds"} as String {format: 'dd-MMM-yyyy hh:mm:ss'}
}
For more info referred link : https://help.mulesoft.com/s/question/0D52T00004tIkcf/how-to-convert-unix-timestamp-to-normal-human-readable-timestamp-using-dw-20
Thanks

vuejs hotel date picker #check-in-changed cannot send value

i have been trying to send #check-in-changed and #check-out-changed values to modal title and when i console log getStartDate method i get correct date but when i send it to modal title i get value of undefined. Can you please help?
hotel-date-picker:
<HotelDatePicker :gridStyle="false" :showSingleMonth="true" :minNights="7" :alwaysVisible="true"
:showPrice="true" priceSymbol='€' :periodDates="detail.periodDates"
:disabledDates="detail.disabledDates" #check-in-changed="getStartDate"
#check-out-changed="getEndDate">
</HotelDatePicker>
methods:
getStartDate(newDate) {
console.log(newDate)
return (newDate)
},
getEndDate(newDate){
return (newDate)
},
console.log of getStartDate:
Date Mon Nov 22 2021 00:00:00 GMT+0100 (Central European Standard Time)

FullCalendar - Get info range when use eventMouseEnter

In my case I have setup the timeline like:
events: [{
title: 'My schedule'
start: '2021-07-08T01:00:00Z',
end: '2021-07-08T03:00:00Z',
}]
Which mean that my time 00:00UTC will be shifted to local time GMT+7 and timeZone:'local' (as default) , follow as this doc https://fullcalendar.io/docs/date-parsing
At ui view is render timeline exactly what I want that 2021-07-08T08:00:00Z GMT+7 & 2021-07-08T10:00:00Z GMT+7 (Perfect).
But when I try to get back that info with:
eventMouseEnter(info) {
console.log(info.event._instance.range);
}
I get this:
{
end: Wed Jul 08 2021 15:08:10 GMT+0700 (Indochina Time) {}
start: Wed Jul 08 2021 17:08:10 GMT+0700 (Indochina Time) {}
}
Don't know why but, is seem like i get the wrong info or that info just add more GMT+7?
Thanks

Datatable sort plugin for day month year hour:minute

Is there a sort plugin for the date format
16 Jul 2014, 2:04 p.m.
18 Jul 2014, 11:54 a.m.
27 Jun 2014, 5:56 p.m.
The dates are currently sorted in the default format (16 Jul should be before 18 Jul but after 27 Jun).
This is my table definition:
$(document).ready(function() {
var dt = $("#files_table").dataTable({
"paging": false,
"defaultContent": "No Data",
"order": [[ 0, "desc" ]],
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 7, ]},
{ "sClass": "center", "aTargets": [ 7, ]},
{ "sType": "date-uk", "aTargets": [ 0, ]},
]
});
At the bottom where I specify the date type (current "date-uk"), none of the date formats at
http://datatables.net/plug-ins/sorting/ correspond to day name-of-month year hh:mm.
Is my only alternative to make my own data source sort function? It seems like quite a common format.
You can sort your dates without any additional plugin, only you have to put the timestamp of the date in data-order attribute.
Demo.
Documentation.