4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or https://opensource.org/licenses/CDDL-1.0.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
29 #include "statcommon.h"
33 #define _DATE_FMT D_T_FMT
35 #define _DATE_FMT "%+"
37 #endif /* _DATE_FMT */
40 * Print timestamp as decimal reprentation of time_t value (-T u was specified)
41 * or in date(1) format (-T d was specified).
44 print_timestamp(uint_t timestamp_fmt
)
46 time_t t
= time(NULL
);
47 static const char *fmt
= NULL
;
49 /* We only need to retrieve this once per invocation */
51 fmt
= nl_langinfo(_DATE_FMT
);
53 if (timestamp_fmt
== UDATE
) {
54 (void) printf("%lld\n", (longlong_t
)t
);
55 } else if (timestamp_fmt
== DDATE
) {
60 len
= strftime(dstr
, sizeof (dstr
), fmt
, localtime_r(&t
, &tm
));
62 (void) printf("%s\n", dstr
);
67 * Return timestamp as decimal reprentation (in string) of time_t
68 * value (-T u was specified) or in date(1) format (-T d was specified).
71 get_timestamp(uint_t timestamp_fmt
, char *buf
, int len
)
73 time_t t
= time(NULL
);
74 static const char *fmt
= NULL
;
76 /* We only need to retrieve this once per invocation */
78 fmt
= nl_langinfo(_DATE_FMT
);
80 if (timestamp_fmt
== UDATE
) {
81 (void) snprintf(buf
, len
, "%lld", (longlong_t
)t
);
82 } else if (timestamp_fmt
== DDATE
) {
84 strftime(buf
, len
, fmt
, localtime_r(&t
, &tm
));
89 * Format the provided time stamp to human readable format
92 format_timestamp(time_t t
, char *buf
, int len
)
95 static const char *fmt
= NULL
;
98 snprintf(buf
, len
, "-");
102 /* We only need to retrieve this once per invocation */
104 fmt
= nl_langinfo(_DATE_FMT
);
105 strftime(buf
, len
, fmt
, localtime_r(&t
, &tm
));