1dfe32fa1Soh_ci/* 2dfe32fa1Soh_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3dfe32fa1Soh_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4dfe32fa1Soh_ci * you may not use this file except in compliance with the License. 5dfe32fa1Soh_ci * You may obtain a copy of the License at 6dfe32fa1Soh_ci * 7dfe32fa1Soh_ci * http://www.apache.org/licenses/LICENSE-2.0 8dfe32fa1Soh_ci * 9dfe32fa1Soh_ci * Unless required by applicable law or agreed to in writing, software 10dfe32fa1Soh_ci * distributed under the License is distributed on an "AS IS" BASIS, 11dfe32fa1Soh_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12dfe32fa1Soh_ci * See the License for the specific language governing permissions and 13dfe32fa1Soh_ci * limitations under the License. 14dfe32fa1Soh_ci */ 15dfe32fa1Soh_ci 16dfe32fa1Soh_ci//! This module is used to get the system time. 17dfe32fa1Soh_ci 18dfe32fa1Soh_ciuse std::time::{SystemTime, UNIX_EPOCH}; 19dfe32fa1Soh_ci 20dfe32fa1Soh_ciuse asset_definition::{log_throw_error, ErrCode, Result}; 21dfe32fa1Soh_ci 22dfe32fa1Soh_ci/// Get the current time from the system, in milliseconds. 23dfe32fa1Soh_cipub fn system_time_in_millis() -> Result<Vec<u8>> { 24dfe32fa1Soh_ci match SystemTime::now().duration_since(UNIX_EPOCH) { 25dfe32fa1Soh_ci Ok(d) => Ok(d.as_millis().to_string().as_bytes().to_vec()), 26dfe32fa1Soh_ci Err(e) => log_throw_error!(ErrCode::GetSystemTimeError, "[FATAL]Get system time failed, err: {}", e), 27dfe32fa1Soh_ci } 28dfe32fa1Soh_ci} 29dfe32fa1Soh_ci 30dfe32fa1Soh_ci/// Get the current time from the system, in seconds. 31dfe32fa1Soh_cipub fn system_time_in_seconds() -> Result<u64> { 32dfe32fa1Soh_ci match SystemTime::now().duration_since(UNIX_EPOCH) { 33dfe32fa1Soh_ci Ok(d) => Ok(d.as_secs()), 34dfe32fa1Soh_ci Err(e) => log_throw_error!(ErrCode::GetSystemTimeError, "[FATAL]Get system time failed, err: {}", e), 35dfe32fa1Soh_ci } 36dfe32fa1Soh_ci} 37